How to reconcile event-based performance analysis with tasking in OpenMP

  • Authors:
  • Daniel Lorenz;Bernd Mohr;Christian Rössel;Dirk Schmidl;Felix Wolf

  • Affiliations:
  • Jülich Supercomputing Centre, Forschungszentrum Jülich, Germany;Jülich Supercomputing Centre, Forschungszentrum Jülich, Germany;Jülich Supercomputing Centre, Forschungszentrum Jülich, Germany;Dept. of Computer Science, RWTH Aachen University, Germany;Jülich Supercomputing Centre, Forschungszentrum Jülich, Germany

  • Venue:
  • IWOMP'10 Proceedings of the 6th international conference on Beyond Loop Level Parallelism in OpenMP: accelerators, Tasking and more
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

With version 3.0, the OpenMP specification introduced a task construct and with it an additional dimension of concurrency. While offering a convenient means to express task parallelism, the new construct presents a serious challenge to event-based performance analysis. Since tasking may disrupt the classic sequence of region entry and exit events, essential analysis procedures such as reconstructing dynamic call paths or correctly attributing performance metrics to individual task region instances may become impossible. To overcome this limitation, we describe a portable method to distinguish individual task instances and to track their suspension and resumption with event-based instrumentation. Implemented as an extension of the OPARI source-code instrumenter, our portable solution supports C/C++ programs with tied tasks and with untied tasks that are suspended only at implied scheduling points, while introducing only negligible measurement overhead. Finally, we discuss possible extensions of the OpenMP specification to provide general support for task identifiers with untied tasks.