The Performance API (PAPI) provides simultaneous access to performance counters on CPUs, GPUs, and other components of interest (e.g., network and I/O systems). Provided as a linkable library or shared object, PAPI can be called directly in a user program, or used transparently through a variety of third-party tools, making it a de facto standard for hardware counter analysis. Industry liaisons with Bull, Cray, Intel, IBM, NVIDIA, and others ensure seamless integration of PAPI with new architectures at or near their release. As the PAPI component architecture becomes more populated, performance tools that interface with PAPI automatically inherit the ability to measure these new data sources, usually with no changes at the user level. This provides a richer environment in which performance analysts can work.
Components are available for network counters, GPGPUs like those from NVIDIA, system health monitoring, and power and energy measurement. Virtual PAPI—supported since PAPI 5.0—provides performance measurement standards in virtual environments, which are common in cloud computing. Recent versions of PAPI support measuring energy consumption on Intel Sandy Bridge and its successor processors through the RAPL (Running Average Power Limit) interface, and power measurements are now possible through both a native and host-based power component for Intel Xeon Phi. Support for power monitoring on IBM BlueGene/Q via the EMON functionality is now available with PAPI 5.4. More work is underway to support other methods for power and energy measurement as they become available.
Find out more at http://icl.eecs.utk.edu/papi/
In Collaboration With
- Texas A&M University
- Virginia Tech
With Support From