%0 Journal Article %J Procedia Computer Science %D 2011 %T User-Defined Events for Hardware Performance Monitoring %A Shirley Moore %A James Ralph %K mumi %K papi %X PAPI is a widely used cross-platform interface to hardware performance counters. PAPI currently supports native events, which are those provided by a given platform, and preset events, which are pre-defined events thought to be common across platforms. Presets are currently mapped and defined at the time that PAPI is compiled and installed. The idea of user-defined events is to allow users to define their own metrics and to have those metrics mapped to events on a platform without the need to re-install PAPI. User-defined events can be defined in terms of native, preset, and previously defined user-defined events. The user can combine events and constants in an arbitrary expression to define a new metric and give a name to the new metric. This name can then be specified as a PAPI event in a PAPI library call the same way as native and preset events. End-user tools such as TAU and Scalasca that use PAPI can also use the user-defined metrics. Users can publish their metric definitions so that other users can use them as well. We present several examples of how user-defined events can be used for performance analysis and modeling. %B Procedia Computer Science %I Elsevier %V 4 %P 2096-2104 %8 2011-05 %G eng %R https://doi.org/10.1016/j.procs.2011.04.229