7.0 (revision 7784de1c)
Data Structures | Enumerations
SCOREP_MetricTypes.h File Reference

Types used by metric service. More...

#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  SCOREP_Metric_Properties
 
struct  SCOREP_MetricTimeValuePair
 

Enumerations

enum  SCOREP_MetricBase {
  SCOREP_METRIC_BASE_BINARY = 0,
  SCOREP_METRIC_BASE_DECIMAL = 1,
  SCOREP_INVALID_METRIC_BASE
}
 
enum  SCOREP_MetricMode {
  SCOREP_METRIC_MODE_ACCUMULATED_START = 0,
  SCOREP_METRIC_MODE_ACCUMULATED_POINT = 1,
  SCOREP_METRIC_MODE_ACCUMULATED_LAST = 2,
  SCOREP_METRIC_MODE_ACCUMULATED_NEXT = 3,
  SCOREP_METRIC_MODE_ABSOLUTE_POINT = 4,
  SCOREP_METRIC_MODE_ABSOLUTE_LAST = 5,
  SCOREP_METRIC_MODE_ABSOLUTE_NEXT = 6,
  SCOREP_METRIC_MODE_RELATIVE_POINT = 7,
  SCOREP_METRIC_MODE_RELATIVE_LAST = 8,
  SCOREP_METRIC_MODE_RELATIVE_NEXT = 9
}
 
enum  SCOREP_MetricPer {
  SCOREP_METRIC_PER_THREAD = 0,
  SCOREP_METRIC_PER_PROCESS,
  SCOREP_METRIC_PER_HOST,
  SCOREP_METRIC_ONCE
}
 
enum  SCOREP_MetricProfilingType {
  SCOREP_METRIC_PROFILING_TYPE_EXCLUSIVE = 0,
  SCOREP_METRIC_PROFILING_TYPE_INCLUSIVE = 1,
  SCOREP_METRIC_PROFILING_TYPE_SIMPLE = 2,
  SCOREP_METRIC_PROFILING_TYPE_MAX = 3,
  SCOREP_METRIC_PROFILING_TYPE_MIN = 4
}
 
enum  SCOREP_MetricSourceType {
  SCOREP_METRIC_SOURCE_TYPE_PAPI = 0,
  SCOREP_METRIC_SOURCE_TYPE_RUSAGE = 1,
  SCOREP_METRIC_SOURCE_TYPE_USER = 2,
  SCOREP_METRIC_SOURCE_TYPE_OTHER = 3,
  SCOREP_METRIC_SOURCE_TYPE_TASK = 4,
  SCOREP_METRIC_SOURCE_TYPE_PLUGIN = 5,
  SCOREP_METRIC_SOURCE_TYPE_PERF = 6
}
 
enum  SCOREP_MetricSynchronicity {
  SCOREP_METRIC_STRICTLY_SYNC = 0,
  SCOREP_METRIC_SYNC,
  SCOREP_METRIC_ASYNC_EVENT,
  SCOREP_METRIC_ASYNC
}
 
enum  SCOREP_MetricSynchronizationMode {
  SCOREP_METRIC_SYNCHRONIZATION_MODE_BEGIN,
  SCOREP_METRIC_SYNCHRONIZATION_MODE_BEGIN_MPP,
  SCOREP_METRIC_SYNCHRONIZATION_MODE_END
}
 
enum  SCOREP_MetricValueType {
  SCOREP_METRIC_VALUE_INT64,
  SCOREP_METRIC_VALUE_UINT64,
  SCOREP_METRIC_VALUE_DOUBLE
}
 

Detailed Description

Types used by metric service.

Enumeration Type Documentation

Types to be used in defining metric base (SCOREP_Definitions_NewMetric()).

Enumerator
SCOREP_METRIC_BASE_BINARY 

Binary base.

SCOREP_METRIC_BASE_DECIMAL 

Decimal base.

SCOREP_INVALID_METRIC_BASE 

For

Types to be used in defining metric mode (SCOREP_Definitions_NewMetric()). The mode consists of a timing and a value semantic. The possible value semantics are:

  • Accumulated for classic counters, e.g. number of floating point operations. While they are stored monotonically increasing in the trace, they are often differentiated as rate over time.
  • Absolute values, e.g. temperature. They are stored as is in the trace and typically also displayed as is.
  • Relative values.

The possible timing semantics are:

  • Start: The value is valid for the interval from the beginning of the trace to the associated timestamp.
  • Point: The value is only valid for the point in time given by the timestamp.
  • Last: The value is valid for the interval from the previous to the current timestamp.
  • Next: The value is valid for the interval from the current to the next timestamp.
Enumerator
SCOREP_METRIC_MODE_ACCUMULATED_START 

Accumulated metric, 'START' timing.

SCOREP_METRIC_MODE_ACCUMULATED_POINT 

Accumulated metric, 'POINT' timing.

SCOREP_METRIC_MODE_ACCUMULATED_LAST 

Accumulated metric, 'LAST' timing.

SCOREP_METRIC_MODE_ACCUMULATED_NEXT 

Accumulated metric, 'NEXT' timing.

SCOREP_METRIC_MODE_ABSOLUTE_POINT 

Absolute metric, 'POINT' timing.

SCOREP_METRIC_MODE_ABSOLUTE_LAST 

Absolute metric, 'LAST' timing.

SCOREP_METRIC_MODE_ABSOLUTE_NEXT 

Absolute metric, 'NEXT' timing.

SCOREP_METRIC_MODE_RELATIVE_POINT 

Relative metric, 'POINT' timing.

SCOREP_METRIC_MODE_RELATIVE_LAST 

Relative metric, 'LAST' timing.

SCOREP_METRIC_MODE_RELATIVE_NEXT 

Relative metric, 'NEXT' timing.

Enumeration to define how many threads should record the metrics of a plugin. Used by SCOREP_Metric_Plugin_Info::run_per.

Enumerator
SCOREP_METRIC_PER_THREAD 

Metric values are recorded on all threads of all processes

SCOREP_METRIC_PER_PROCESS 

If processes use multiple threads, the metric is recorded on the main thread of each process.

SCOREP_METRIC_PER_HOST 

Metric values are recorded on a single thread of each node in a parallel program running on multiple nodes (hosts). Nodes are determined by the platform-specific Score-P node identifier.

SCOREP_METRIC_ONCE 

Metric values recorded once within the parallel program. They are recorded on the first node, first process, first thread.

Types used to define type of profiling.

Enumerator
SCOREP_METRIC_PROFILING_TYPE_EXCLUSIVE 

Exclusive values (excludes values from subordinated items)

SCOREP_METRIC_PROFILING_TYPE_INCLUSIVE 

Inclusive values (sum including values from subordinated items )

SCOREP_METRIC_PROFILING_TYPE_SIMPLE 

Single value

SCOREP_METRIC_PROFILING_TYPE_MAX 

Maximum values

SCOREP_METRIC_PROFILING_TYPE_MIN 

Minimum values

Metric sources to be used in defining a metric member (SCOREP_Definitions_NewMetric()).

Enumerator
SCOREP_METRIC_SOURCE_TYPE_PAPI 

PAPI counter.

SCOREP_METRIC_SOURCE_TYPE_RUSAGE 

Resource usage counter.

SCOREP_METRIC_SOURCE_TYPE_USER 

User metrics.

SCOREP_METRIC_SOURCE_TYPE_OTHER 

Any other metrics.

SCOREP_METRIC_SOURCE_TYPE_TASK 

Generated by task profiling.

SCOREP_METRIC_SOURCE_TYPE_PLUGIN 

Plugin metrics.

SCOREP_METRIC_SOURCE_TYPE_PERF 

Linux perf metrics

Enumeration to define the synchronicity type of a metric. Used by SCOREP_Metric_Plugin_Info::sync.

Enumerator
SCOREP_METRIC_STRICTLY_SYNC 

The current value of each metric is queried by Score-P whenever an enter/leave event occurs via get_current_value. The plugin must always be able to provide a current value. The plugin provides the value itself, the timestamp is provided by Score-P. This setting is used for metrics that can be measured with minimal runtime costs and updated very frequently.

SCOREP_METRIC_SYNC 

The current value of each metric is queried by Score-P whenever an enter/leave event occurs via get_optional_value. Providing a value is optional in case no new value is available in the plugin. The plugin provides the value itself, the timestamp is provided by Score-P. This setting is used for metrics that can be measured with minimal runtime costs but do not necessarily always change.

SCOREP_METRIC_ASYNC_EVENT 

Metric values are be measured at arbitrary points in time, but are collected at enter/leave events. Whenever an enter/leave event occurs, Score-P queries the plugin via get_all_values for a list of timestamp-value-pairs. This setting can be used for some special cases, SCOREP_METRIC_ASYNC is usually easier to implement.

SCOREP_METRIC_ASYNC 

Metric values are be measured at arbitrary points in time. All values are collected once at the very end of the execution. Score-P collects the values and associated timestamps via get_all_values. This setting is used for metrics that are recorded on external systems or within a separate thread. While it does require additional memory buffers to store the measurement, it usually reduces the overhead by decoupling the measurement from collection. It is also called post-mortem processing.

Possible modes of a synchronization point. Express the time when a synchronization happens.

Enumerator
SCOREP_METRIC_SYNCHRONIZATION_MODE_BEGIN 

Synchronization at the beginning of the measurement

SCOREP_METRIC_SYNCHRONIZATION_MODE_BEGIN_MPP 

Synchronization at the initialization of a multi-process paradigm (e.g., MPI)

SCOREP_METRIC_SYNCHRONIZATION_MODE_END 

Synchronization at the end of the measurement

Types to be used in defining type of metric values (SCOREP_Definitions_NewMetric()). The interface uses UINT64 for all values, the other types should be reinterpreted using a union.

Enumerator
SCOREP_METRIC_VALUE_INT64 

64 bit integer

SCOREP_METRIC_VALUE_UINT64 

64 bit unsigned integer

SCOREP_METRIC_VALUE_DOUBLE 

double precision floating point