Exascale-class systems will exhibit a new level of complexity, in terms of their underlying architectures and their system software. At the same time, the complexity of applications will rise sharply, both to implement new science possible at exascale and to exploit the new hardware features necessary to achieve exascale performance. To overcome these limitations and to enable applications to reach exascale performance, users will expect a new generation of tools that help them address these complexities and fully exploit the systems' performance.

These tools need to help users address the bottlenecks of exascale machines, work seamlessly with the programming models on the target machines, scale to the full size of the machine, provide the necessary automatic analysis capabilities, and be flexible and modular enough to overcome the complexities and changing demands of exascale architectures.

At LLNL, we are addressing these challenges and requirements through a series of tool research and development efforts targeting performance analysis, optimization, debugging, and correctness tools, as well as automatic tuning and optimization capabilities. In addition, these efforts are supported by activities on tool infrastructures that enable us to work with more modular tool designs and support rapid tool prototyping.