@article {icl:557, title = {Collecting Performance Data with PAPI-C}, journal = {Tools for High Performance Computing 2009}, year = {2010}, month = {2010-05}, pages = {157-173}, publisher = {Springer Berlin / Heidelberg}, address = {3rd Parallel Tools Workshop, Dresden, Germany}, abstract = {Modern high performance computer systems continue to increase in size and complexity. Tools to measure application performance in these increasingly complex environments must also increase the richness of their measurements to provide insights into the increasingly intricate ways in which software and hardware interact. PAPI (the Performance API) has provided consistent platform and operating system independent access to CPU hardware performance counters for nearly a decade. Recent trends toward massively parallel multi-core systems with often heterogeneous architectures present new challenges for the measurement of hardware performance information, which is now available not only on the CPU core itself, but scattered across the chip and system. We discuss the evolution of PAPI into Component PAPI, or PAPI-C, in which multiple sources of performance data can be measured simultaneously via a common software interface. Several examples of components and component data measurements are discussed. We explore the challenges to hardware performance measurement in existing multi-core architectures. We conclude with an exploration of future directions for the PAPI interface.}, keywords = {mumi, papi}, doi = {https://doi.org/10.1007/978-3-642-11261-4_11}, author = {Dan Terpstra and Heike Jagode and Haihang You and Jack Dongarra} }