Towards an Implementation of the OpenMP Collector API

Parallel programming languages/libraries including OpenMP, MPI, and UPC are either in the process of defining or have already established standard performance profiling interfaces. The OpenMP Architecture Review Board (ARB) recently sanctioned an interface specification for profiling/tracing tools that defines a protocol for two-way communications and control between the OpenMP runtime library and performance tools, known as the collector API. Reference implementations of the collector are sparse and are primarily closed-source. We provide a description of our efforts towards a full implementation of an open-source performance monitoring tool for OpenMP based on the collector API. This efforta evaluates the collector’s approach to performance measurement, assesses what is necessary to implement a performance tool based on the collector interface, and also provides information useful to performance tool developers interested in interfacing with the collector for performance measurements.