@techreport {1462, title = {Redesigning PAPI{\textquoteright}s High-Level API}, journal = {Innovative Computing Laboratory Technical Report}, number = {ICL-UT-20-03}, year = {2020}, month = {2020-02}, publisher = {University of Tennessee}, abstract = {PAPI (Performance Application Programming Interface) provides a portable and efficient API to access the hardware performance counters found on modern microprocessors. With the introduction of Component PAPI or PAPI-C in early 2010 PAPI has extended its reach beyond the CPU and can now monitor system information across a range of components from CPUs to network cards, graphics accelerator cards, parallel file systems and more. To collect performance events, PAPI provides two APIs, the low-level and high-level API. The legacy high-level API was designed for simplicity, but could only handle preset CPU events. To access events from all installed components, the programmer had to use the low-level API. This paper introduces a new high-level API that enables the measurement of both preset and native events. It is intended for programmers who want to perform simple event measurements with minimal code instrumentation.}, author = {Frank Winkler} }