Performance Application Programming Interface Publisher's description
Performance Application Programming Interface is an API for a CPU performance counter.
PAPI aims to provide the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors.
PAPI enables software engineers to see, in near real time, the relation between software performance and processor events.
The Performance API (PAPI) project specifies a standard application programming interface (API) for accessing hardware performance counters available on most modern microprocessors.
These counters exist as a small set of registers that count Events, occurrences of specific signals related to the processor's function. Monitoring these events facilitates correlation between the structure of source/object code and the efficiency of the mapping of that code to the underlying architecture.
This correlation has a variety of uses in performance analysis including hand tuning, compiler optimization, debugging, benchmarking, monitoring and performance modeling. In addition, it is hoped that this information will prove useful in the development of new compilation technology as well as in steering architectural development towards alleviating commonly occurring bottlenecks in high performance computing.
PAPI provides two interfaces to the underlying counter hardware; a simple, high level interface for the acquisition of simple measurements and a fully programmable, low level interface directed towards users with more sophisticated needs.
The low level PAPI interface deals with hardware events in groups called EventSets. EventSets reflect how the counters are most frequently used, such as taking simultaneous measurements of different hardware events and relating them to one another.
For example, relating cycles to memory references or flops to level 1 cache misses can indicate poor locality and memory management. In addition, EventSets allow a highly efficient implementation which translates to more detailed and accurate measurements.
EventSets are fully programma
What's New in This Release:В· The PAPI 4.1.0 release is now available for download. It incorporates all the fixes from the 4.0 patches, as well as a few other goodies. See the software page to download the tarball.
В· New platform support includes Intel's Nehalem EX and Westmere processors.
В· Support for IBM Blue Gene / P has been improved to include the PAPI_TOT_CYC event.
В· This release includes significant code cleanup to eliminate compiler warnings and type inconsistencies and to eliminate memory leaks.
В· We also now support embedded doxygen comments for documentation. Doxygen documentation can be found here.
В· The component build environment has been restructured to make it easier to add and build components without modifying baseline PAPI code. See the /src/components/README file for details.
В· PAPI can now also be built with a generic cpu option. This is useful in cases where you have an older unpatched kernel and want to test other components, or if you want to build instrumented code on a platform other than the test platform to verify proper compilation. This takes the place of PAPI's old "any-null" substrate build.
В· We have added experimental implementations of an Infiniband and a Lustre component. We have also added an example component to illustrate and template component coding.
System Requirements:No special requirements.
Program Release Status:
Program Install Support: Install and Uninstall