## Scalasca instrumentation/measurement regions

### EPIK

Description:
  Synthetic events/regions associated with activities of the EPIK measurement system.

  A `TRACING` region indicates intermediate trace buffer flushing to file, as well as measurement initialization and finalization (including clock offset determination) even when tracing is disabled.

  A `PAUSING` region marks when measurement was explicitly paused via EPIK user API macros. Events are not recorded while measurement is paused.

  A special `PARALLEL` region is synthesized to encapsulate MPI regions if an MPI region is the first to be encountered. It defines the parallel execution between `MPI_Init` (or `MPI_Init_thread`) and `MPI_Finalize`.

  A special `UNKNOWN` region can also appear in measurements and is used to indicate various problems, such as failure to determine the actual name of a routine or truncation of the call-tree due to insufficient capacity.

### MPI

Description:
  Functions from the MPI library for which instrumentation wrappers were generated and events configured at start of measurement. Calls to measured MPI routines may occur in instrumented user sources, or in uninstrumented sources or libraries, however, MPI calls done internally by the measurement library or the MPI library itself are not measured.

  MPI regions cannot be filtered (like user-level regions), however, sets of regions which are not desired in a measurement can be disabled by eliminating them from the `EPK_MPI_ENABLED` specification in EPIK.CONF or as an environment variable. Execution time in uninstrumented or disabled MPI routines will appear attributed to the calling user-level routine.

### OMP

Description:
  OpenMP API routines and parallel regions automatically instrumented by the OpenMP pragma and annotated region instrumenter (OPARI2). OMP pragmas [C/C++] and executable directives [Fortran] are uniformly named with the "`!$omp`" prefix, the construct, and the source location (`@filename:lineno`).

  OMP regions cannot be filtered (like user-level regions) during measurement, however, source files containing OpenMP can be instrumented selectively. Furthermore, OPARI2 can be configured to disable instrumentation of some or all of the more fine-grained OpenMP constructs `atomic`, `critical`, `flush`, `locks`, `master` and `single`.

### USR

Description:
  Ordinary user-level routines instrumented automatically by the compiler or PDT instrumenter, and source code regions manually instrumented with POMP directives or EPIK user API macros. (Currently the different types of user-level routines are not distinguished.) Routine names provided by compilers may or may not include decorations such as trailing underscores, embedded file/module names, parameters and return values. For C++, the original routine name may be determined with a "demangler" library (if supported and configured with Scalasca).

  If the frequent execution of a routine results in substantial overhead (either through measurement dilation or trace buffer capacity), consider specifying its name in a filter used for subsequent measurements, or apply selective instrumentation (e.g., via the PDT instrumenter).

### COM

Description:
  The COM designation applies to callpaths (rather than regions) and is used to signify common paths to OMP/MPI communication/synchronization routines and USR local computation, as reported by the `cube3_score` utility. The associated regions provide context that is valuable for distinguishing instances of communication/synchronization routines and corresponding computation phases. While they are typically compiler-instrumented USR regions, and can also be filtered from measurement at run-time, usually this is neither necessary nor desirable.

|  | Copyright © 1998-2012 Forschungszentrum Jülich GmbH