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.
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.
Well, it's really PAPI 18.104.22.168, but who's counting? A few final last minute fixes caused us to bump the version number, just to keep the source code repository happy.
We added support for PAPI on the Intel Xeon Phi processor, aka MIC or KNC or Knight's Corner. PAPI cross-compiles on the host and runs on the MIC. Note that this currently requires a kernel patch to the MIC kernel. Details can be found in INSTALL.txt.
We also added a new component to measure power usage on MIC cards. This is a native MIC-based component that provides a selection of power, current and voltage measures.
PAPI now supports measuring uncore events on Intel Sandy Bridge processors, which requires support for a new domain: PAPI_DOM_SUPERVISOR to measure events at the system level.
We added a new API, PAPI_get_eventset_component, which returns the component index of a given eventset and is parallel to the PAPI_get_event_component call introduced in PAPI 5.0.
We improved the papi_command_line utility to print output in a variety of formats, and to display event units if they're available.
PAPI 5.0.1 is now available both as a tarball and as a patch to the recent 5.0.0 release. We recommend that all users and tools upgrade to this release.
Why, you may ask, are we releasing again so soon after the 5.0 release?
Primarily because we discovered a bug that randomly causes derived PRESET events to be computed incorrectly. This is a small fix with big implications, and was reported by an early PAPI 5.0 user in our bug reports forum. Thank you for helping to improve our package.
While we were at it, we decided to polish a few other less important things as well:
we updated the libpfm4 library with some Sandy Bridge fixes
we fixed some problems with the build system and external libpfm4 libraries
we fixed some event definitions for Intel Ivy Bridge processors
we updated the CUDA component to support CUDA 5 and Kepler
we added support for RAPL energy measurement on Ivy Bridge
If you've already installed PAPI 5.0.0, you can download a patch here and apply it to your source code and rebuild the library.
If you'd rather install from a tarball you can use the download link below.
PAPI 5.0.0 Release, AKA PAPI-V with support for Virtual Systems
The PAPI 5.0.0 release is now available for download.
This is a major release of PAPI. Parts of both the internal component and external low-level interfaces have changed. This will break your 4.4 compliant components and links to shared libraries.
Although we have tried to keep the impact of these changes minimal, we have made changes to the Application Binary Interface, the Application Programming Interface, and the Component Development Interface. A full detailed description of the changes to PAPI 5.0 can be found here: http://web.eecs.utk.edu/~vweaver1/papers/papi/papi_v5_changes.pdf
Meanwhile here's a quick summary of changed APIs:
PAPI_perror now behaves like its posix cousin. The API has been changed to reflect this.
Both PAPI_perror and PAPI_strerror can now report errors from components as well as pre-defined PAPI errors.
The data returned by PAPI_get_component_info has been cleaned up significantly. If you were using esoteric fields, they may no longer be there.
And some new APIs:
PAPI add named event, PAPI remove named event, PAPI query named event
PAPI get event component, PAPI enum cmp event, PAPI get component index
PAPI disable component by by name, PAPI disable component
PAPI-V also add detection of operation inside a virtual environment and several virtual machine related components, including one to report stealtime from linux.
If you're running on a SandyBridge machine, you can use the new RAPL component to measure power consumed by the chip, and if you're running certain NVidia cards, you can use the NVML component to measure power on that card.
Oh, and if you're using SandyBridge or IvyBridge processors, good luck with counting Floating Point operations. They'll work on SandyBridge if you're careful and only count Floating Point; they won't work at all on IvyBridge.
As always, please contact us through the mailing list or User Forum if you have any questions or complaints about this release.
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.
Industry Support From: