domp
Displays OpenMP information using the OMPD API
Format
domp [-parallel_regions ] [-task_regions] [-control_vars] [-ompd] [-threads {-regions | -functions | -stack}][-send_symbols]
Arguments
-parallel_regions
Displays information about the parallel regions in the focus, including how the regions are nested. This command uses the standard ptset notation to identify which threads are in which regions. TotalView attempts to find the source location of each region shown in the aggregated display.
Default focus: thread
-task_regions
Displays information about the task regions in the focus, including how the regions are nested. This command uses the standard ptset notation to identify which threads are in which regions. TotalView attempts to find the source location of each region shown in the aggregated display.
Default focus: thread
-control_vars
Displays the settings of the OpenMP display control variables.
Default focus: process
-ompd
Displays information about the OMPD plugin support library being used by TotalView for each process in the focus:
Table 1: Information displayed by domp -ompd
Entry | Description |
---|
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. |
Default focus: process
-threads
Displays thread-centric information about the threads in the focus, including:
Table 2: Properties displayed by domp -threads
The TotalView ID for this thread |
The operating system id for this thread |
The OpenMP thread number within its team, i.e., the value returned to the thread by omp_get_thread_num() |
The OpenMP state for this thread |
OpenMP flags: 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. If the flag could not be fetched, a “?” is displayed. For example, a value of ip- identifies a thread as implicit, in an active parallel region, and reports that it’s not the final task, while -pf identifies a thread as explicit, in a parallel region, and the final task. |
The domp -threads command also has these sub-options:
-regions
Lists the thread's nest of parallel and task regions.
-functions
Reports the source location of the code corresponding to the regions. The name of the function, its line number, and the file are displayed.
-stack
Reports the stack addresses corresponding to where: 1) control exited the OpenMP runtime to execute the task user code; and 2) control reentered the runtime from the user task code. The exit address is 0 for the root region, and for a leaf, the reentry address is 0.
Default focus: thread
-send_symbols
Sends the OMPD symbols to the TotalView tracers. These symbols are referenced by the OMPD library and their addresses are resolved by the tracers.
Classic UI only: For the Classic UI and the CLI only, explicitly sending the OMPD symbols to the tracers for each address space (process or CUDA context) by invoking domp -send_symbols is required. For the new UI, the TotalView client broadcasts the symbols required by the OMPD library to the tracers, allowing symbol lookup without requiring the access or storage of full symbol information in the servers.
Default focus: process
Description
The domp command displays OpenMP information in an OpenMP program. The information displayed here is used to populate the OpenMP view in the new UI.
Command alias
Alias | Definition | Description |
---|
-pr | {domp -parallel_regions} | Displays detail on the parallel regions in focus |
-tr | {domp -task_regions} | Displays detail on the task regions in focus |
-cv | {domp -control_vars} | Displays the OpenMP display control variables settings |
-ss | {domp -send_symbols} | Sends symbols to the TotalView tracers |
Examples
d1.<> domp -threads
Displays detail about the thread in focus. The “i” flag indicates that this thread is performing an implicit task, while “p” reports that this thread is in an active parallel region, while “-” means it is not the final task. The state “work_parallel” is an OMPD runtime flag indicating that the thread is executing code within the scope of a parallel region.
Output:
1 (216921): 1 OpenMP thread
tv_id os_thread_id thread_num state flags
==================================================================
1 0x7f9679894740 0 work_parallel ip-
d1.<> dfocus p1 domp -tr
First, changes the focus to the entire process, then calls domp -tr to display the nest of task regions for all the threads in process p1.
Here, the program has a single process with eight threads and an overall task region identified by the compiler-created outlined function omp_outlined..13, also identified by its line in the code (#91). This region in turn contains a single nested region omp_outlined..6 which itself has two nested regions, one of which contains a task, omp_task_entry.
Output:
+- / 1:8[p1.1-8]
+- omp_outlined..13 [/tests/openmp#91] 1:8[p1.1-8]
+- omp_outlined..6 [/tests/openmp#55] 1:8[p1.1-8]
+- omp_outlined. [/tests/openmp#29] 1:2[p1.1, p1.5]
+- omp_outlined..3 [/tests/openmp#38] 1:6[p1.2-4, p1.6-8]
+- omp_task_entry. [/tests/openmp#42] 1:6[p1.2-4, p1.6-8]
d1.<> domp -threads -regions
Displays the nest of parallel and task regions for the thread in focus.
Output:
1 (216921): 1 OpenMP thread
tv_id os_thread_id thread_num state flags
==================================================================
1 0x7f9679894740 0 work_parallel ip-
1 ip-
2 i--
3 i--
To show all the threads for the process, enter: dfocus p domp -threads -regions.
Related Topics
Debugging OpenMP Applications in the (new UI) TotalView User Guide