Performance Analysis Techniques for Task-Based OpenMP Applications

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Version 3.0 of the OpenMP specification introduced the task construct for the explicit expression of dynamic task parallelism. Although automated load-balancing capabilities make it an attractive parallelization approach for programmers, the difficulty of integrating this new dimension of parallelism into traditional models of performance data has so far prevented the emergence of appropriate performance tools. Based on our earlier work, where we have introduced instrumentation for task-based programs, we present initial concepts for analyzing the data delivered by this instrumentation. We define three typical performance problems related to tasking and show how they can be visually explored using event traces. Special emphasis is placed on the event model used to capture the execution of task instances and on how the time consumed by the program is mapped onto tasks in the most meaningful way. We illustrate our approach with practical examples.

This material is based upon work supported by the German Federal Ministry of Research and Education (BMBF) under Grant No. 01IS07005 and by the Department of Energy under Grant No. DE-SC0001621.