In OpenMP applications, if a parallel region is executed by multiple threads (master and worker threads), each worker thread will have its own calling sequence (call path or callstack) which logically starts when the master thread encountered the parallel region. During translation, AMDuProf will stitch the worker thread's call path to master thread call path at the point where the parallel region started, if the worker threads are active in the parallel region. This allows runtimes from the worker threads to be attributed to the correct logical calling sequence of the program (i.e. calling sequence without OpenMP) so that uProf can produce accurate flame graphs.
By default, AMDuProf stitches the call path for AOCC, ICC, and LLVM compiled
applications. Select OpenMP implementation type as omplib to stitch the
call path for GCC compiled applications.