5.0 (revision 14406)
Macros | Typedefs | Enumerations
type definitions and enums used in Score-P

Macros

#define SCOREP_INVALID_EXIT_STATUS   ( ( int64_t )( ~( ( ~( ( uint64_t )0u ) ) >> 1 ) ) )
 
#define SCOREP_INVALID_LINE_NO   0
 
#define SCOREP_INVALID_METRIC   SCOREP_MOVABLE_NULL
 
#define SCOREP_INVALID_PARADIGM   SCOREP_MOVABLE_NULL
 
#define SCOREP_INVALID_REGION   SCOREP_MOVABLE_NULL
 
#define SCOREP_INVALID_ROOT_RANK   -1
 
#define SCOREP_INVALID_SAMPLING_SET   SCOREP_MOVABLE_NULL
 
#define SCOREP_INVALID_SOURCE_FILE   SCOREP_MOVABLE_NULL
 
#define SCOREP_LOCATION_TYPES
 
#define SCOREP_MOVABLE_NULL   0
 

Typedefs

typedef uint32_t SCOREP_Allocator_MovableMemory
 
typedef SCOREP_Allocator_MovableMemory SCOREP_AnyHandle
 
typedef int64_t SCOREP_ExitStatus
 
typedef uint32_t SCOREP_LineNo
 
typedef SCOREP_AnyHandle SCOREP_MetricHandle
 
typedef int SCOREP_MpiRank
 
typedef uint64_t SCOREP_MpiRequestId
 
typedef SCOREP_AnyHandle SCOREP_ParadigmHandle
 
typedef SCOREP_AnyHandle SCOREP_RegionHandle
 
typedef SCOREP_AnyHandle SCOREP_SamplingSetHandle
 
typedef SCOREP_AnyHandle SCOREP_SourceFileHandle
 
typedef struct SCOREP_Task * SCOREP_TaskHandle
 

Enumerations

enum  SCOREP_CollectiveType {
  SCOREP_COLLECTIVE_BARRIER,
  SCOREP_COLLECTIVE_BROADCAST,
  SCOREP_COLLECTIVE_GATHER,
  SCOREP_COLLECTIVE_GATHERV,
  SCOREP_COLLECTIVE_SCATTER,
  SCOREP_COLLECTIVE_SCATTERV,
  SCOREP_COLLECTIVE_ALLGATHER,
  SCOREP_COLLECTIVE_ALLGATHERV,
  SCOREP_COLLECTIVE_ALLTOALL,
  SCOREP_COLLECTIVE_ALLTOALLV,
  SCOREP_COLLECTIVE_ALLTOALLW,
  SCOREP_COLLECTIVE_ALLREDUCE,
  SCOREP_COLLECTIVE_REDUCE,
  SCOREP_COLLECTIVE_REDUCE_SCATTER,
  SCOREP_COLLECTIVE_REDUCE_SCATTER_BLOCK,
  SCOREP_COLLECTIVE_SCAN,
  SCOREP_COLLECTIVE_EXSCAN,
  SCOREP_COLLECTIVE_CREATE_HANDLE,
  SCOREP_COLLECTIVE_DESTROY_HANDLE,
  SCOREP_COLLECTIVE_ALLOCATE,
  SCOREP_COLLECTIVE_DEALLOCATE,
  SCOREP_COLLECTIVE_CREATE_HANDLE_AND_ALLOCATE,
  SCOREP_COLLECTIVE_DESTROY_HANDLE_AND_DEALLOCATE
}
 Types to specify the used collectives in calls to SCOREP_MpiCollectiveBegin and SCOREP_RmaCollectiveBegin. More...
 
enum  SCOREP_Ipc_Datatype
 specifies an inter process communication data types More...
 
enum  SCOREP_Ipc_Operation
 specifies an inter process communication operation for reduce function More...
 
enum  SCOREP_LocationType { , SCOREP_INVALID_LOCATION_TYPE }
 
enum  SCOREP_LockType {
  SCOREP_LOCK_EXCLUSIVE,
  SCOREP_LOCK_SHARED,
  SCOREP_INVALID_LOCK_TYPE
}
 
enum  SCOREP_MetricOccurrence {
  SCOREP_METRIC_OCCURRENCE_SYNCHRONOUS_STRICT = 0,
  SCOREP_METRIC_OCCURRENCE_SYNCHRONOUS = 1,
  SCOREP_METRIC_OCCURRENCE_ASYNCHRONOUS = 2,
  SCOREP_INVALID_METRIC_OCCURRENCE
}
 Types to be used in defining the occurrence of a sampling set. More...
 
enum  SCOREP_MetricScope {
  SCOREP_METRIC_SCOPE_LOCATION = 0,
  SCOREP_METRIC_SCOPE_LOCATION_GROUP = 1,
  SCOREP_METRIC_SCOPE_SYSTEM_TREE_NODE = 2,
  SCOREP_METRIC_SCOPE_GROUP = 3,
  SCOREP_INVALID_METRIC_SCOPE
}
 Types to be used in defining the scope of a scoped sampling set. More...
 
enum  SCOREP_ParadigmClass { SCOREP_INVALID_PARADIGM_CLASS }
 defines classes of paradigms that are monitored Types: More...
 
enum  SCOREP_ParadigmType { SCOREP_INVALID_PARADIGM_TYPE }
 defines paradigms that are be monitored More...
 
enum  SCOREP_ParameterType {
  SCOREP_PARAMETER_INT64,
  SCOREP_PARAMETER_UINT64,
  SCOREP_PARAMETER_STRING,
  SCOREP_INVALID_PARAMETER_TYPE
}
 defines types to be used in defining a parameter for parameter based profiling (SCOREP_Definitions_NewParameter()). More...
 
enum  SCOREP_RegionType { , SCOREP_INVALID_REGION_TYPE }
 specifies a Region More...
 
enum  SCOREP_RmaAtomicType
 specifies a RMA Atomic Operation Type. More...
 
enum  SCOREP_RmaSyncLevel
 specifies a RMA synchronization level, used by RMA records to be passed to SCOREP_Rma*() functions. More...
 
enum  SCOREP_RmaSyncType { SCOREP_INVALID_RMA_SYNC_TYPE }
 Type of direct RMA synchronization call. More...
 
enum  SCOREP_SamplingSetClass {
  SCOREP_SAMPLING_SET_ABSTRACT,
  SCOREP_SAMPLING_SET_CPU,
  SCOREP_SAMPLING_SET_GPU
}
 Class of locations which recorded a sampling set. More...
 
enum  SCOREP_Substrates_RequirementFlag {
  SCOREP_SUBSTRATES_REQUIREMENT_CREATE_EXPERIMENT_DIRECTORY,
  SCOREP_SUBSTRATES_REQUIREMENT_PREVENT_ASYNC_METRICS,
  SCOREP_SUBSTRATES_REQUIREMENT_PREVENT_PER_HOST_AND_ONCE_METRICS,
  SCOREP_SUBSTRATES_NUM_REQUIREMENTS
}
 

Detailed Description

Macro Definition Documentation

#define SCOREP_INVALID_EXIT_STATUS   ( ( int64_t )( ~( ( ~( ( uint64_t )0u ) ) >> 1 ) ) )

Symbolic constant representing an invalid or unknown exit status. Do not use INT64_C here, as this maybe accessed by C++

#define SCOREP_INVALID_LINE_NO   0

Symbolic constant representing an invalid or unknown line number.

See also
SCOREP_Definitions_NewRegion()
#define SCOREP_INVALID_METRIC   SCOREP_MOVABLE_NULL

Symbolic constant representing an invalid or unknown metric definition.

#define SCOREP_INVALID_PARADIGM   SCOREP_MOVABLE_NULL

Symbolic constant representing an invalid or unknown paradigm definition.

#define SCOREP_INVALID_REGION   SCOREP_MOVABLE_NULL

Symbolic constant representing an invalid or unknown region definition.

#define SCOREP_INVALID_ROOT_RANK   -1

Symbolic constant representing an invalid or unknown rank.

See also
SCOREP_MpiCollective()
#define SCOREP_INVALID_SAMPLING_SET   SCOREP_MOVABLE_NULL

Symbolic constant representing an invalid or unknown metric class definition.

#define SCOREP_INVALID_SOURCE_FILE   SCOREP_MOVABLE_NULL

Symbolic constant representing an invalid or unknown source file definition.

#define SCOREP_LOCATION_TYPES
Value:
SCOREP_LOCATION_TYPE( CPU_THREAD, "CPU thread" ) \
SCOREP_LOCATION_TYPE( GPU, "GPU" ) \
SCOREP_LOCATION_TYPE( METRIC, "metric location" ) \

Types to be used in defining a location (SCOREP_Definitions_NewLocation()).

#define SCOREP_MOVABLE_NULL   0

Symbolic constant representing an invalid or NULL handle of type SCOREP_Allocator_MovableMemory.

Typedef Documentation

Opaque handle to memory that can be easily moved between processes. Used for definitions as they have to be moved during unification.

Type of a opaque handle to any definition.

typedef int64_t SCOREP_ExitStatus

Type used in specify the exit status of the program.

See also
ProgramEnd event
typedef uint32_t SCOREP_LineNo

Type used in specifying line numbers.

See also
SCOREP_Definitions_NewRegion()

Type of a opaque handle to a metric definition.

See also
SCOREP_Definitions_NewMetric()
typedef int SCOREP_MpiRank

Type of MPI Ranks. Type of MPI ranks always int.

typedef uint64_t SCOREP_MpiRequestId

Type of a MPI Non-blocking communication request id.

Type of a opaque handle to a paradigm definition.

See also
SCOREP_Definitions_NewParadigm()

Type of a opaque handle to a region definition.

See also
SCOREP_Definitions_NewRegion()

Type of a opaque handle to a sampling set definition.

See also
SCOREP_Definitions_NewSamplingSet()

Type of a opaque handle to a source file definition.

See also
SCOREP_Definitions_NewSourceFile()
typedef struct SCOREP_Task* SCOREP_TaskHandle

Task Handle

Enumeration Type Documentation

Types to specify the used collectives in calls to SCOREP_MpiCollectiveBegin and SCOREP_RmaCollectiveBegin.

Enumerator
SCOREP_COLLECTIVE_BARRIER 

The collective is a barrier, e.g., MPI_Barrier(...), shmem_barrier(...), or shmem_barrier_all(...)

SCOREP_COLLECTIVE_BROADCAST 

The collective is a barrier, e.g., MPI_Bcast(...), or shmem_broadcast32(...)

SCOREP_COLLECTIVE_GATHER 

The collective is a simple gather operation, e.g., MPI_Gather(...)

SCOREP_COLLECTIVE_GATHERV 

The collective is a complex gather operation, e.g., MPI_Gatherv(...)

SCOREP_COLLECTIVE_SCATTER 

The collective is a simple scatter operation, e.g., MPI_Scatter(...)

SCOREP_COLLECTIVE_SCATTERV 

The collective is a complex scatter operation, e.g., MPI_Scatterv(...)

SCOREP_COLLECTIVE_ALLGATHER 

The collective is a simple allgather operation, e.g., MPI_Allgather(...), or shmem_collect64(...)

SCOREP_COLLECTIVE_ALLGATHERV 

The collective is a complex allgather operation, e.g., MPI_Allgatherv(...)

SCOREP_COLLECTIVE_ALLTOALL 

The collective is a simple all-to-all communication, e.g., MPI_Alltoall(...)

SCOREP_COLLECTIVE_ALLTOALLV 

The collective is a all-to-all communication with more options for sizes and displacements, e.g., MPI_Alltoallv(...)

SCOREP_COLLECTIVE_ALLTOALLW 

The collective is a generalized all-to-all communication, e.g., MPI_Alltoallw(...)

SCOREP_COLLECTIVE_ALLREDUCE 

The collective is an allreduce operation, e.g., MPI_Allreduce(...)

SCOREP_COLLECTIVE_REDUCE 

The collective is a reduce operation, e.g., MPI_Reduce(...), or shmem_longlong_max_to_all(...)

SCOREP_COLLECTIVE_REDUCE_SCATTER 

The collective is a reduce-scatter operation, which combines some values and scatters the results, e.g., MPI_Reduce_scatter(...)

SCOREP_COLLECTIVE_REDUCE_SCATTER_BLOCK 

The collective is a reduce scatter block operation, e.g., MPI_Reduce_scatter_block(...)

SCOREP_COLLECTIVE_SCAN 

The collective is a scan operation, where partial reductions of data is computed, e.g., MPI_Scan(...)

SCOREP_COLLECTIVE_EXSCAN 

The collective is an exclusive scan operation, e.g., MPI_Exscan(...)

SCOREP_COLLECTIVE_CREATE_HANDLE 

This is used by the tracing substrate to work together with OTF2

SCOREP_COLLECTIVE_DESTROY_HANDLE 

This is used by the tracing substrate to work together with OTF2

SCOREP_COLLECTIVE_ALLOCATE 

This is used by the tracing substrate to work together with OTF2

SCOREP_COLLECTIVE_DEALLOCATE 

This is used by the tracing substrate to work together with OTF2

SCOREP_COLLECTIVE_CREATE_HANDLE_AND_ALLOCATE 

This is used by the tracing substrate to work together with OTF2

SCOREP_COLLECTIVE_DESTROY_HANDLE_AND_DEALLOCATE 

This is used by the tracing substrate to work together with OTF2

specifies an inter process communication data types

Types:

  • SCOREP_IPC_BYTE byte
  • SCOREP_IPC_CHAR char
  • SCOREP_IPC_UNSIGNED_CHAR unsigned char
  • SCOREP_IPC_INT int
  • SCOREP_IPC_UNSIGNED unsigned int
  • SCOREP_IPC_INT32_T int32_t
  • SCOREP_IPC_UINT32_T uint32_t
  • SCOREP_IPC_INT64_T int64_t
  • SCOREP_IPC_UINT64_T uint64_t
  • SCOREP_IPC_DOUBLE double

specifies an inter process communication operation for reduce function

Types:

  • SCOREP_IPC_BAND binary and
  • SCOREP_IPC_BOR binary or
  • SCOREP_IPC_MIN minimum
  • SCOREP_IPC_MAX maximum
  • SCOREP_IPC_SUM sum
Enumerator
SCOREP_INVALID_LOCATION_TYPE 

For internal use only.

General Lock Type.

Enumerator
SCOREP_LOCK_EXCLUSIVE 

Exclusive lock. No other lock will be granted.

SCOREP_LOCK_SHARED 

Shared lock. Other shared locks will be granted, but no exclusive locks.

SCOREP_INVALID_LOCK_TYPE 

For internal use only.

Types to be used in defining the occurrence of a sampling set.

Enumerator
SCOREP_METRIC_OCCURRENCE_SYNCHRONOUS_STRICT 

Metric occurs at every region enter and leave.

SCOREP_METRIC_OCCURRENCE_SYNCHRONOUS 

Metric occurs only at a region enter and leave, but does not need to occur at every enter/leave.

SCOREP_METRIC_OCCURRENCE_ASYNCHRONOUS 

Metric can occur at any place i.e. it is not related to region enter and leaves.

SCOREP_INVALID_METRIC_OCCURRENCE 

For internal use only.

Types to be used in defining the scope of a scoped sampling set.

Enumerator
SCOREP_METRIC_SCOPE_LOCATION 

Scope of a metric is another location.

SCOREP_METRIC_SCOPE_LOCATION_GROUP 

Scope of a metric is a location group.

SCOREP_METRIC_SCOPE_SYSTEM_TREE_NODE 

Scope of a metric is a system tree node.

SCOREP_METRIC_SCOPE_GROUP 

Scope of a metric is a generic group of locations.

SCOREP_INVALID_METRIC_SCOPE 

For internal use only.

defines classes of paradigms that are monitored Types:

Types to be used in defining a region (SCOREP_Definitions_NewRegion()). In order to track the origin of a region definition, the adapter needs to provide his type.

  • SCOREP_PARADIGM_CLASS_MPP refers to any multi processing based paradigms (e.g., MPI, SHMEM)
  • SCOREP_PARADIGM_CLASS_THREAD_FORK_JOIN refers to any thread parallel fork-join based paradigms (e.g., OpenMP)
  • SCOREP_PARADIGM_CLASS_THREAD_CREATE_WAIT refers to any thread parallel create wait based paradigms (e.g., PThreads)
  • SCOREP_PARADIGM_CLASS_ACCELERATOR refers to any accelerator based paradigms
  • SCOREP_INVALID_PARADIGM_CLASS for internal use only
Enumerator
SCOREP_INVALID_PARADIGM_CLASS 

For internal use only.

defines paradigms that are be monitored

! Keep MPI first after the non-parallel paradigms

Types:

  • SCOREP_PARADIGM_MEASUREMENT refers to Score-P internals
  • SCOREP_PARADIGM_USER refers to user instrumentation
  • SCOREP_PARADIGM_COMPILER refers to compiler instrumentation
  • SCOREP_PARADIGM_SAMPLING refers to sampling
  • SCOREP_PARADIGM_MEMORY refers to a memory region (malloc/realloc/...)
  • SCOREP_PARADIGM_LIBWRAP refers to region instrumented by user library wrapping
  • SCOREP_PARADIGM_MPI refers to MPI instrumentation
  • SCOREP_PARADIGM_SHMEM refers to SHMEM instrumentation
  • SCOREP_PARADIGM_OPENMP refers to OpenMP instrumentation
  • SCOREP_PARADIGM_PTHREAD refers to Pthread instrumentation
  • SCOREP_PARADIGM_ORPHAN_THREAD refers to Pthreads that are not instrumented
  • SCOREP_PARADIGM_CUDA refers to CUDA instrumentation
  • SCOREP_PARADIGM_OPENCL refers to OpenCL instrumentation
  • SCOREP_PARADIGM_OPENACC refers to OpenACC instrumentation
  • SCOREP_INVALID_PARADIGM_TYPE for internal use only
Enumerator
SCOREP_INVALID_PARADIGM_TYPE 

For internal use only.

defines types to be used in defining a parameter for parameter based profiling (SCOREP_Definitions_NewParameter()).

Enumerator
SCOREP_PARAMETER_INT64 

The parameter is an int64_t

SCOREP_PARAMETER_UINT64 

The parameter is an uint64_t

SCOREP_PARAMETER_STRING 

The parameter is a string

SCOREP_INVALID_PARAMETER_TYPE 

For internal use only.

specifies a Region

Types to be used in defining a region (SCOREP_Definitions_NewRegion()). These types are currently not used inside the measurement system. This may change in future if we are going to implement phases/dynamic regions etc. inside the measurement system as opposed to inside the adapters or as a postprocessing step. The names should be self explanatory; most of them are already used (whith a different prefix) in VampiTrace and Scalasca.

Types:

  • SCOREP_REGION_UNKNOWN The type of the region is unknown / not defined
  • SCOREP_REGION_FUNCTION The region is defined by compiler instrumentation/sampling and defines a code function
  • SCOREP_REGION_LOOP The region represents a loop in the source code (used by Opari)
  • SCOREP_REGION_USER The region is a user region, e.g., an Opari user region
  • SCOREP_REGION_CODE The region represents a code region
  • SCOREP_REGION_PHASE (Currently not used)
  • SCOREP_REGION_DYNAMIC (Currently not used)
  • SCOREP_REGION_DYNAMIC_PHASE (Currently not used)
  • SCOREP_REGION_DYNAMIC_LOOP (Currently not used)
  • SCOREP_REGION_DYNAMIC_FUNCTION (Currently not used)
  • SCOREP_REGION_DYNAMIC_LOOP_PHASE (Currently not used)
  • SCOREP_REGION_COLL_ONE2ALL Represents a collective communication region with one2all communication
  • SCOREP_REGION_COLL_ALL2ONE Represents a collective communication region with all2one communication
  • SCOREP_REGION_COLL_ALL2ALL Represents a collective communication region with all2all communication
  • SCOREP_REGION_COLL_OTHER Represents a collective communication region that is neither one2all, nor all2one, nor all2all
  • SCOREP_REGION_POINT2POINT Represents a point2point communication region
  • SCOREP_REGION_PARALLEL Represents an (OpenMP) parallel region
  • SCOREP_REGION_SECTIONS Represents an (OpenMP) sections region
  • SCOREP_REGION_SECTION Represents an (OpenMP) section region
  • SCOREP_REGION_WORKSHARE Represents an (OpenMP) workshare region
  • SCOREP_REGION_SINGLE Represents an (OpenMP) single region
  • SCOREP_REGION_MASTER Represents an (OpenMP) master region
  • SCOREP_REGION_CRITICAL Represents an (OpenMP) critical region
  • SCOREP_REGION_ATOMIC Represents an atomic region
  • SCOREP_REGION_BARRIER Represents a barrier
  • SCOREP_REGION_IMPLICIT_BARRIER Represents an implicit barrier (that is implicitely given but not explicitely defined)
  • SCOREP_REGION_FLUSH Represents an (OpenMP) flush region
  • SCOREP_REGION_CRITICAL_SBLOCK Represents an sblock within a (OpenMP) critical region
  • SCOREP_REGION_SINGLE_SBLOCK Represents an sblock within a (OpenMP) single region
  • SCOREP_REGION_WRAPPER Represents a wrapper region (e.g., from interpositioning)
  • SCOREP_REGION_TASK Represents a (OpenMP) task region, within SCOREP_REGION_TASK_CREATE
  • SCOREP_REGION_TASK_UNTIED Represents a (OpenMP) untied task region
  • SCOREP_REGION_TASK_WAIT Represents a (OpenMP) taskwait region
  • SCOREP_REGION_TASK_CREATE Represents a created (OpenMP) task region
  • SCOREP_REGION_ORDERED Represents an (OpenMP) ordered region
  • SCOREP_REGION_ORDERED_SBLOCK Represents an sblock within a (OpenMP) ordered region
  • SCOREP_REGION_ARTIFICIAL Represents an artificial region
  • SCOREP_REGION_RMA Represents an RMA region
  • SCOREP_REGION_THREAD_CREATE Represents the creation of a thread
  • SCOREP_REGION_THREAD_WAIT Represents the creation of a thread
  • SCOREP_REGION_ALLOCATE Represents a region where memory is allocated, e.g., MPI_Alloc_mem
  • SCOREP_REGION_DEALLOCATE Represents a region where memory is deallocated
  • SCOREP_REGION_REALLOCATE Represents a region where memory is reallocated
Enumerator
SCOREP_INVALID_REGION_TYPE 

For internal use only.

specifies a RMA Atomic Operation Type.

Types:

  • SCOREP_RMA_ATOMIC_TYPE_ACCUMULATE accumulate
  • SCOREP_RMA_ATOMIC_TYPE_INCREMENT increment
  • SCOREP_RMA_ATOMIC_TYPE_TEST_AND_SET test and set
  • SCOREP_RMA_ATOMIC_TYPE_COMPARE_AND_SWAP compare and swap
  • SCOREP_RMA_ATOMIC_TYPE_SWAP swap
  • SCOREP_RMA_ATOMIC_TYPE_FETCH_AND_ADD fetch and add
  • SCOREP_RMA_ATOMIC_TYPE_FETCH_AND_INCREMENT fetch and increment
  • SCOREP_RMA_ATOMIC_TYPE_ADD add
  • SCOREP_INVALID_RMA_ATOMIC_TYPE for internal use only

specifies a RMA synchronization level, used by RMA records to be passed to SCOREP_Rma*() functions.

Types:

  • SCOREP_RMA_SYNC_LEVEL_NONE No process synchronization or access completion (e.g., * MPI_Win_post)
  • SCOREP_RMA_SYNC_LEVEL_PROCESS Synchronize processes (e.g., MPI_Win_create/free)
  • SCOREP_RMA_SYNC_LEVEL_MEMORY Complete memory accesses (e.g., MPI_Win_complete, MPI_Win_wait)
  • SCOREP_RMA_SYNC_LEVELS for internal use only

Type of direct RMA synchronization call.

Types:

  • SCOREP_RMA_SYNC_TYPE_MEMORY Synchronize memory copy.
  • SCOREP_RMA_SYNC_TYPE_NOTIFY_IN Incoming remote notification.
  • SCOREP_RMA_SYNC_TYPE_NOTIFY_OUT Outgoing remote notification
  • SCOREP_INVALID_RMA_SYNC_TYPE for internal use only
Enumerator
SCOREP_INVALID_RMA_SYNC_TYPE 

For internal use only.

Class of locations which recorded a sampling set.

Enumerator
SCOREP_SAMPLING_SET_ABSTRACT 

The sampling set is more complicated, e.g., refers to a number of locations.

SCOREP_SAMPLING_SET_CPU 

The sampling set refers to a CPU.

SCOREP_SAMPLING_SET_GPU 

The sampling set refers to a GPU.

Enumerator
SCOREP_SUBSTRATES_REQUIREMENT_CREATE_EXPERIMENT_DIRECTORY 

Return true on this feature if your substrate needs the experiment directory. There will be no directory nor configuration log file if no substrate requests it.

SCOREP_SUBSTRATES_REQUIREMENT_PREVENT_ASYNC_METRICS 

Return true on this feature if your substrate can't handle asynchronous metrics. No asynchronous metrics will be recorded if at least on substrate prevents it.

SCOREP_SUBSTRATES_REQUIREMENT_PREVENT_PER_HOST_AND_ONCE_METRICS 

Return true on this feature if your substrate can't handle PER_HOST or ONCE metrics. No PER_HOST or ONCE metrics will be recorded if at least on substrate prevents it.

SCOREP_SUBSTRATES_NUM_REQUIREMENTS 

Non-ABI used internally