2.0.5-beta (revision 1823)
OpenMP Pragma And Region Instrumentor
POMP User Instrumentation

For manual user instrumentation the following pragmas are provided.

C/C++:

   #pragma pomp inst init
   #pragma pomp inst begin(region_name)
   #pragma pomp inst altend(region_name)
   #pragma pomp inst end(region_name)
   #pragma pomp noinstrument
   #pragma pomp instrument

Fortran:

   !$POMP INST INIT
   !$POMP INST BEGIN(region_name)
   !$POMP INST ALTEND(region_name)
   !$POMP INST END(region_name)
   !$POMP NOINSTRUMENT
   !$POMP INSTRUMENT

Users can specify code regions, like functions for example, with INST BEGIN and INST END. If a region contains several exit points like return/break/exit/... all but the last need to be marked with INST ALTEND pragmas. The INST INIT pragma should be used for initialization in the beginning of main, if no other initialization method is used. The NOINSTRUMENT and INSTRUMENT pragmas can be used to turn off or on the instrumentation of OpenMP pragmas. All pragmas between NOINSTRUMENT and INSTRUMENT except for parallel regions are not instrumented. Parallel regions are always instrumented to allow a correct thread management in the performance tool. See the Example Code section for an example on how to use user instrumentation.