@article {icl:618, title = {User-Defined Events for Hardware Performance Monitoring}, journal = {Procedia Computer Science}, volume = {4}, year = {2011}, month = {2011-05}, pages = {2096-2104}, publisher = {Elsevier}, abstract = {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.}, keywords = {mumi, papi}, doi = {https://doi.org/10.1016/j.procs.2011.04.229}, author = {Shirley Moore and James Ralph} }