Lesson plan

Performance Application Programming Interface

In computer science, Performance Application Programming Interface (PAPI) is a portable interface (in the form of a library) to hardware performance counters on modern microprocessors. It is being widely used to collect low level performance metrics (e.g. instruction counts, clock cycles, cache misses) of computer systems running UNIX/Linux operating systems. PAPI provides predefined high level hardware events summarized from popular processors and direct access to low level native events of one particular processor. Counter multiplexing and overflow handling are also supported. Operating system support for accessing hardware counters is needed to use PAPI. For example, prior to 2010, a Linux/x86 kernel had to be patched with a performance monitoring counters driver (perfctr link) to support PAPI. Since Linux version 2.6.32, and PAPI 2010 releases, PAPI can leverage the existing perf subsystem in Linux, and thus does not need any out of tree driver to be functional anymore. Supported Operating Systems and requirements are listed in the official repository's documentation INSTALL.txt.

Back to article

Article summary

In computer science, Performance Application Programming Interface (PAPI) is a portable interface (in the form of a library) to hardware performance counters on modern microprocessors. It is being widely used to collect low level performance metrics (e.g. instruction counts, clock cycles, cache misses) of computer systems running UNIX/Linux operating systems. PAPI provides predefined high level hardware events summarized from popular processors and direct access to low level native events of one particular processor. Counter multiplexing and overflow handling are also supported. Operating system support for accessing hardware counters is needed to use PAPI. For example, prior to 2010, a Linux/x86 kernel had to be patched with a performance monitoring counters driver (perfctr link) to support PAPI. Since Linux version 2.6.32, and PAPI 2010 releases, PAPI can leverage the existing perf subsystem in Linux, and thus does not need any out of tree driver to be functional anymore. Supported Operating Systems and requirements are listed in the official repository's documentation INSTALL.txt.

Key claims

No claims recorded.

Discussion questions

  1. Summarise the article in your own words. Which single claim would you verify first, and why?
  2. Which claim in this article is most likely to be revised as the sources update? How would you check its current status?
  3. If two sources disagreed about one of these facts, what would you need in order to trust one over the other?

Bibliography

No sources recorded.

Key claims and bibliography are generated from the same tracked claims and sources as the article page.