OpenMP* trace collection is currently supported only on Linux* and macOS* operating systems.
To collect OpenMP traces for an application, you need an OMPT-enabled OpenMP* version 5.0 library, such as
icpc -std=c++11 -qopenmp omp_depend.cpp -o example
compiler flag to enable symbol resolution information.
To collect traces for OpenMP applications and create XML files, follow these steps:
variable and update your
environment variable as shown in the table below.
The path to the Flow Graph Collector installation
The path must include paths to
To enable tracing from OMPT, set the following variables:
OMPT tool support enabler.
Path to OpenMP collector library.
If your paths are set up correctly, the application generates one or more files that start with
. There is one file per thread that participates in executing the parallelism in the application. So, for example, if two threads participate in the execution of the flow graph, running the application generates two files,
, in an autogenerated folder in the format
according to its creation (for example,
Convert the trace files to GraphML* and TraceML* format.
binary files to the XML format understood by the Flow Graph Analyzer using the
converter in the directory containing the folder with the trace files:
fgt2xml.exe <desired_name> --omp_experimental
fgt2xml.exe --omp_experimental <desired_name>
This converter scans the current directory for all
files within the most recent folder according to its name and generates two output files:
. If you do not provide a
, the converter creates
flag enables displaying a subgraph and tasks dependence graph. By default, display support is disabled and you see only information related to OpenMP constructs in the per-thread traces.