The OpenMP View
The OpenMP view displays all the OMPD information provided by the OpenMP Debugging Interface, also available via the domp CLI command.
OMPD Info Tab Information about the OMPD dynamic library (DLL) in use for the selected process.
CLI command: domp -ompd
API Version: The version of the OMPD API supported by the DLL, which is returned by
ompd_get_api_version(). For OMPD v5.0, that value is 201811.
DLL Version: The string returned by
ompd_get_version_string().
DLL Name: The location of the OMPD DLL loaded by TotalView to handle that process. A specific DLL is loaded once into TotalView and then used for as many processes that specify it via the
ompd_dll_locations variable in the process.
Control Variables Tab The OMPD display control variable settings for a selected process. Changing the focus to a different process repopulates this list with that process’s control variables.
CLI command: domp -control_vars
Regions Tab The nest of parallel regions for the entire share group. Selecting different regions in the display focuses the source pane on the specific region.
CLI Command: domp -threads -regions
Threads Tab Displays details on all the OpenMP threads in the application.
Note that:
A thread’s first line identifies its current (innermost) region, displaying the basic OpenMP thread information.
Expand any top level thread to display the thread’s nest of parallel and task regions.
Once expanded, each line shows the enclosing regions’ task flags and distance from the current region, identified as an integer in the State/Region# column; the last line identifies the outermost region. The regions may cross thread boundaries from a child thread to its parent thread.
Right-clicking on the header shows or hides columns.
This setting is persisted between sessions.
CLI Command: domp -threads. This command has numerous options that are all included as columns within this Threads tab.
Table 10: OpenMP Threads Tab Column Description
Column | Description |
---|
Thread ID | The TotalView thread id or the MPI Rank if this is an MPI program |
OMP Thread # | The thread’s OpenMP thread number within its team |
System ID | The thread’s Kernel ID or user thread id |
State/Region # | The threads OpenMP state for the top-level thread. This state is defined by the OpenMP standard. If the expander on the top-level thread is clicked, the thread’s nest of parallel or task regions is displayed, and the column shows the index of the region. |
Flags | OpenMP Flags. The following flags are reported: i: The task is an implicit task. No corresponding routine in the OpenMP runtime reports this information. p: The thread is in an active parallel region. This corresponds to the omp_in_parallel() predicate in the OpenMP runtime. f : The task is a final task. This corresponds to the omp_in_final() in the OpenMP runtime. When true, the flag is displayed by just its letter. If false, a hyphen (“-”) displays after it. If the flag could not be fetched, a “?” is displayed. |
Parallel Function | The subroutine name for the task function for the current parallel region’s implicit task. Hovering over the function name displays the full file path for the function, along with the line number in the source file. |
Task Function | The subroutine name for the task function for the current implicit or explicit task region. Hovering over the function name displays the full file path for the function, along with the line number in the source file. |
Exit Addr | The thread’s stack address corresponding to the location where control exited the OpenMP runtime to execute the task user code. The exit address is 0 for the root region. |
Reentry Addr | The thread’s stack address corresponding to the location where control reentered the runtime from the user task code. The reentry address is 0 for a leaf. |