The purpose of the PAPI project is to specify a standard application progra
mming interface (API) for accessing hardware performance counters available
on most modern microprocessors. These counters exist as a small set of reg
isters that count events, which are occurrences of specific signals and sta
tes related to the processor's function. Monitoring these events facilitate
s correlation between the structure of source/object code and the efficienc
y of the mapping of that code to the underlying architecture. This correlat
ion has a variety of uses in performance analysis, including hand tuning, c
ompiler 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 arc
hitectural development toward alleviating commonly occurring bottlenecks in
high performance computing.