In addition to the usual exascale challenges of scale, memory hierarchy, power, and performance portability, the main challenge for the Software Technology Focus Area is the co-design and integration of various components of the software stack with each other, with a broad range of applications, with emerging hardware technologies, and with the software provided by system vendors. These aspects must all come together to provide application developers with a productive development and execution environment.
One misconception that some people have is that everything needs to be built from scratch. That is not true. Although new approaches and methods are needed in some cases, many existing software components can be extended and advanced to work successfully at exascale.