Downloading and Installing PAPI

Clone the PAPI repository the first time with the following command:
> git clone

This creates a complete copy of the papi git repository on your computer in a folder called 'papi'.

To make sure your copy is up to date with the repository:
> cd papi
> git pull

To install PAPI on your system:

  • Find the section in INSTALL.txt that pertains to your hardware and operating system.
  • Follow the directions to install required components and build the PAPI libraries.
  • Run the test suite when you are finished to verify that everything went ok. NOTE: Although we make every attempt to get all tests to PASS or SKIP on all platforms, there are occasional instances of FAILures due to excessively tight compliance thresholds or platform idiosyncrasies. Don't panic if one or two tests FAIL. Contact us with complete output and we'll see what we can do.



Showing 6-10 of 26 Entries
Announcing PAPI 5.4.1

PAPI 5.4.1 is now available. This is a minor release with a major rewrite of the CUDA component as well as several other enhancements and bug fixes.

This release provides CUDA 6.5 support for multiple GPU devices and multiple CUDA contexts.
There have been several other bug fixes and enhancements:

New Platforms:

  • Updated support for Intel Haswell and Haswell-EP
  • Added ARM Cortex A7
  • Added ARM 1176 CPU (original Raspberry Pi)


  • Enhance PAPI preset events to allow user defined events.
        User defined events are set up via a user event definition file.
  • New test demonstrating attaching an eventset to a single CPU rather than a thread.
  • Use the term "event qualifiers" instead of "event masks" to clarify understanding.
  • Added pkg-config support to PAPI. 

Bug Fixes:

  • Fixed lustre segfault bug in lustre component.
  • Fixed compilation in the absence of a Fortran compiler.
  • Fixed bug in krental_pthreads ctest to join threads properly on exit.
  • Fixed bug in perf_events where event masks were not getting cleared properly.
  • Fixed memory leak bug in perf_events.

More details on these changes can be found in the file ChangeLogP541.txt inside the PAPI tarball.

Last but not least, a special Thank You goes out to all our collaborators and contributors!

papi-5.4.1.tar.gz   Download View License

Announcing PAPI 5.4.0

Just in time for SuperComputing 2014, PAPI 5.4.0 is now available.

This release provides a new component for the high speed power measurement API for IBM Blue Gene/Q (BG/Q), called EMON, to provide access to power and energy data on BG/Q in a transparent fashion. This additional support complements the earlier BGPM components for BG/Q, and enables PAPI users and tool developers to use their PAPI instrumented code as is without having to learn a new set of library and instrumentation primitives.

We have added initial support for Applied Micro X-Gene architecture, RAPL (energy measurement) support for Intel Haswell models, and support for the IBM POWER8 system when run as a non-virtualized platform 'PowerNV'.  Furthermore, we have extended the RAPL energy measurements via msr-safe, which is a linux kernel module that allows user access to a whitelisted set of MSRs.

This release also includes several enhancements for the perf_event (core/uncore) components, including support for extended event masks which adds a number of new masks that for example enable counting in user domain, kernel domain, or on a specific cpu.

Additionally, there are also changes to the papi_component_avail utility which now provides a list of PMU names supported by active components.The papi_native_avail utility now supports a more robust "--validate" check on systems with events that require multiple masks to be provided in order to be a valid event (e.g., on Intel SandyBridge EP).

There have been several other bug fixes and enhancements:

  • Updated IBM POWER7, POWER8 presets
  • Hardware counter and event count added/fixed for BGPM components
  • Reduced overhead of API call PAPI_name_to_code()
  • Growing list of native events in core/uncore components fixed
  • Cleaned up Intel IvyBridge presets

As always, there are more details on these changes in the file ChangeLogP540.txt inside the PAPI tarball.

papi-5.4.0.tar.gz   Download View License

Announcing PAPI 5.3.2

PAPI 5.3.2 is now available. This is a minor release featuring several enhancements and bug fixes.

There are a host of component updates to mention:

  • NVML component updates;
  • Addressed appio memory leaks;
  • Support for Haswell-EP added to RAPL component;
  • The perf_event_uncore component event enumeration works now;
  • All components now have appropriate domain and granularities.

The PAPI team also added support for the Intel Silvermont processor and the Qualcomm Krait. FreeBSD support has also been revamped for FreeBSD 10. Some test codes now fall back to PAPI_TOT_INS if PAPI_FP_INS is not defined. Intel Haswell presets have been refined. x87 instructions were added to the PAPI_FP_INS preset on Intel Sandy/Ivy-Bridge processors.

papi-5.3.2.tar.gz   Download View License

Announcing PAPI 5.3.0

Just in time for Christmas stocking-stuffers (and too late for SuperComputing), PAPI 5.3 is now available.

This release includes several enhancements for Intel MIC (Xeon Phi) architectures, including support for offload code in addition to the previously released support for native code. See INSTALL.TXT for details. In addition to offload support, we've enhanced support for host-side power reading from MIC and added a utility to aid in plotting the results.

Intel finally admitted that Ivy Bridge supports Floating Point measurement at least as well as Sandy Bridge and added Floating Point events to the official event table. PAPI 5.3 supports them too. See the PAPI topic: Counting Floating Point on Sandy Bridge and Ivy Bridge for details.

The linux-rapl component had a problem with dynamic range. The length of time you could measure was a function of the (random) starting value. This component has been rewritten to insure access to the full 32-bits of dynamic range, and a test, rapl_wraparound, has been provided to estimate how long you can measure a naive gemm. The cautionary note is that you no longer get an error message on overflow, so you need to check your timings and results for reasonableness. See the PAPI topic: Accessing RAPL for more details.

We made some major changes in the way we handle ctests. First, many of the ctests were built based on outdated configure switches in the makefile(s). We rewrote the tests to determine at runtime whether or not they can run. This may result in more tests executing on your systems than in the past. Enjoy! Next, recognizing the value of our test suite as example code, we restructured the way make install-all works. This option now creates location independent makefiles that will allow you to clone your own copy of the tests directory and modify these tests for your own purposes.

There have been several other bug fixes and enhancements:

  • the Intel Haswell event table now supports PAPI_L1_ICM
  • AMD Bulldozer now supports Core select masks
  • the CUDA component now properly reports the number of native events
  • the command_line utility no longer skips the last event on a list
  • icc builds no longer add an extraneous -openmp flag


papi-5.3.0.tar.gz   Download View License

PAPI 5.2.0 Now Available

This release represents a major overhaul of the component build and test architecture. We've also modified several components to disable themselves at initializaton if the proper libraries or hardware is not available. This makes configuration and distribution of PAPI much easier on heterogenous architectures.

We've also added inital support for Intel Haswell and Power 8 architectures, and moved processor support code to the components directory.

A new component allows measurement of MIC power consumption from the host processor. This complements the earlier component that read MIC power from within native MIC code.

We added a new API to the High Level Interface:
PAPI_epc() measures the rate per cycle of any event, not just instructions or flops. It also provides reference cycles and core cycles where supported, to allow you to calibrate for clock rate changes within a processor. See the man page for details.

The papi_native_avail utility now supports "include" (-i) and "exclude" (-x) filters to more easily display a subset of event names from a potentially large list. See the man page for more information.

Other Enhancements:

  • Component tests are now included with install-tests make target.
  • Components with external library dependencies load them at runtime allowing better distribution (infiniband, cuda, vmware, nvml and host-side micpower)
  • Perf_events, perfctr[_ppc] and perfmon2[_ia64] have been moved under the components directory
  • (Intel) Uncore support has been split into its own component
  • Lustre component better handles large numbers of filesystems

And there's more details on these changes in the file ChangeLogP520.txt inside the PAPI tarball.

papi-5.2.0.tar.gz   Download View License

Showing 6-10 of 26 Entries

Copyright © 2019 The University of Tennessee. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
· Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
· Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution.
· Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

Sep 21 2019 Admin Login