Exascale architectures and applications will be far more complex than today's systems. To harness their power, applications, libraries, and system software will all require radical changes. For instance, exascale systems will require dynamic load balancing not only to cope with imbalanced application load but also to cope with imbalances that arise due to power capping or fault recovery. Exascale systems will therefore need performance tools that produce intuitive feedback to support offline tuning as well as provide online feedback to guide adaptation by applications and runtime layers.
To provide this essential functionality for the extreme-scale software stack, we are developing new abstractions, techniques, and tools for data measurement, analysis, atribution, diagnostic feedback, and visualization. This enables Performance Insights for Programmers and Exascale Runtimes (PIPER). The PIPER project cuts across the entire software stack by collecting data in all system components through novel abstractions and integrated introspection, providing data atribution and analysis in a system-wide context and across programming models, enabling global correlations of performance data from independent sources in different domains, and delivering dynamic feedback to run-time systems and applications through auto-tuning as well as interactive visualizations.