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 OpenMP runtime library used by 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
ICVs Tab The internal control variables that maintain runtime state.
The ICV name is canonicalized and uniquified based on the ICV map extracted from the OMPD library. Any OMP 5.0 OMPD-specific ICV names, which all begin with ompd-, are either renamed to their OMP 5.2 name or discarded if the OMP 5.2 name is also defined.
CLI command: domp -icvs
Regions Tab The nest of parallel and task regions for the entire share group of the selected process. 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 at Region 0 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.
In the example above, Thread 1.2’s region 1 has a parent of 1.1, which created the region being executed.
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 12: OpenMP Threads Tab Column Description
Column | Description |
---|
Thread ID | The TotalView process and thread id or the MPI Rank and thread ID if this is an MPI program. |
OMP Thread # | The thread’s OpenMP thread number within its current team. |
System ID | The thread’s Kernel ID or user thread id. |
State/Region # | The thread’s 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. |
Wait Id/Parent | The thread's OpenMP current wait ID or Parent ID. The Parent ID (which includes the debugger process and thread ID) is the ID of the encountering thread for the region. |
Flags | OpenMP Flags. The following flags are reported: i: The task is an implicit task. An implicit task has no scheduling 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, the flag is displayed as a hyphen (“-”). If the flag could not be fetched, a “?” is displayed. |
Task Function | The subroutine name for the task function for the implicit or explicit task region. If the task function cannot be determined, "<unavailable>" is displayed. |
Task Line | The file name and line number of the task function. |
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. |