Analyze the Data - Analyze the Data - 57368

uProf User Guide

Document_ID
57368
Release_Date
2025-06-09
Revision
5.1 English

If data is collected using CLI, then use Import Session to import the session into GUI to analyze data in GUI. OpenMP trace data can be collected in Linux and the session can be imported to GUI or CLI on Windows.

Analyzing the GUI Views

After the session is opened, navigate to the HPC page to analyze the OpenMP tracing data. You can use the left side vertical pane on this page to navigate through the following views:

Overview shows the quick details about the runtime. The following image shows the Overview page.

Figure 1. HPC - Overview
  • Overview has the following fields:
    • Profile Time: Total profile duration.
    • Time Inside Parallel Region: Total time spent inside parallel regions.
    • Time Outside Parallel Region: Total time spent outside parallel regions.
    • Parallel Time %: Percentage of total time spent inside parallel regions.
    • Total threads created: Total number of threads created.
    • CPU Time: Total time spent utilizing the CPU.
      • Work Time: Time spent working in the parallel region.
      • Sync Time: Total time spent at barrier, lock contention and other synchronization activities.
        • Barrier/Wait Time: Time spent waiting at explicit or implicit barrier by the threads.
        • Lock Contention Time: Time spent by threads waiting on locks or ordered parallel loops.
        • Other Sync Time: Time spent in synchronization activities other than waiting at barriers or for locks.
      • Overhead Time: Total time spent in atomic, reduction and other thread management operations.
        • Reduction Time: Time spent on reduction operations.
        • Atomic Time: Time spent on performing atomic operations.
        • Other Overhead Time: Time spent on other thread management overhead.
    • Idle Time: Time spent in an inactive state, waiting for an event to occur.
  • OpenMP Parallel Regions shows the summary of all the parallel regions. This tab is useful to quickly understand which parallel region might be load imbalanced, i.e., a region with less total work time with respect to its total elapsed time. Double-click on the region names to open the region-wise thread details page.
    Figure 2. OpenMP Parallel Regions
  • OpenMP Parallel Regions has the following columns:
    • Avg Idle Time (secs): Average time spent by the parallel region threads in an inactive state, waiting for an event to occur. It is computed as the difference between the total elapsed time of a parallel region and the sum of Avg Sync Time, Avg Overhead Time and Avg Work Time of that parallel region.
    • Avg Sync Time (secs): Average time spent by the parallel region threads waiting on the synchronization locks to acquire the shared resource. It is computed as the sum of sync time of all the threads within the parallel region divided by the thread count of that parallel region.
    • Avg Overhead Time (secs): Average time spent in atomic, reduction and other thread management operations. It is computed as the sum of overhead time of all the threads within the parallel region divided by the thread count of that parallel region.
    • Avg Work Time (secs): Average time spent by the parallel region threads working. It is computed as the sum of work time of all the threads within the parallel region divided by the thread count of that parallel region.
    • Total Elapsed Time (secs): Time spent in the parallel region.
    • Thread Count: Number of threads in the parallel region.
    • Instance Count: Number of instances of the parallel region executed.
  • Region-Wise Thread Details page helps in understanding how each thread spent its time in the parallel region. If a thread spends too much time on non-work activity, the parallel region should be optimized further to improve the work time of each thread in that region. It has the following columns:
    • Thread No.: Serial number of the thread.
    • Thread Id: Thread identifier.
    • Total Idle Time (secs): Time spent by the thread in an inactive state, waiting for an event to occur.
    • Total Sync Time (secs): Time spent by the thread waiting on the synchronization locks to acquire the shared resource.
    • Total Overhead Time (secs): Time spent by the thread in atomic, reduction and other thread management operations.
    • Total Work Time (secs): Time spent by the thread working.