Software Technology

Development Tools

EXA-PAPI: The Exascale Performance Application Programming Interface

Principal Investigators: Jack Dongarra, lead, University of Tennessee, Knoxville; Heike Jagode, UT Knoxville; Anthony Danalis, UT Knoxville

This project is developing PAPI, which will provide tool designers and application engineers with a consistent interface and methodology for the use of low-level performance counter hardware found across the entire compute system (i.e., CPUs, GPUs, on/off-chip memory, interconnects, I/O system, energy/power, etc.). PAPI will enable users to see, in near real time, the relations between software performance and hardware events across the entire computer system.

Exa-PAPI builds on the latest PAPI project and will be extended with:
(1) Performance counter monitoring capabilities for new and advanced ECP hardware, and software technologies.
(2) Fine-grained power management support.
(3) Functionality for performance counter analysis at “task granularity” for task-based runtime systems.
(4) “Software-defined Events” that originate from the ECP software stack and are currently treated as black boxes (i.e.,   communication libraries, math libraries, task-based runtime systems, etc.)

The objective is to enable monitoring of both types of performance events—hardware- and software-related events—in a uniform way, through one consistent PAPI interface. Third-party tools and application developers will have to handle only a single hook to PAPI in order to access all hardware performance counters in a system, including the new software-defined events.