OpenMP and the OMPD API
The OpenMP (Open Multi-Processing) standard provides a parallel programming API for defining multi-threaded, shared-memory programs. OpenMP consists of a series of compiler directives, library routines, and environment variables that configure runtime behavior.
For more detail on OpenMP itself, see the OpenMP specification.
The OpenMP Debugging API (OMPD) is an innovative new interface that allows third-party tools, such as debuggers, to extract the execution state of an OpenMP (OMP) runtime library, including live processes and core files. OMPD was first added to the OpenMP 5.0 specification, dated November 2018. See the TotalView Platforms Guide for current OMPD platform support.
OMPD allows the TotalView debugger, or other similar third-party tools, to extract information about OpenMP objects such as threads, parallel and task regions, control variables, internal control variables, parent/child thread relationships, and runtime call-stack boundaries.
TotalView provides an OpenMP view in the UI that displays OpenMP control variables, threads, and parallel and task regions. The Call Stack view can be filtered to hide internal OpenMP runtime frames and make it easier to peruse the stack and relevant #pragma directive frames. It also displays information on implicit and explicit task regions.