3.1-rc3 (revision d9ca08bb)
Typedefs | Functions
OTF2_DefWriter.h File Reference

This file provides all routines that write definition records of a single location. More...

#include <stdint.h>
#include "otf2_compiler.h"
#include <otf2/OTF2_ErrorCodes.h>
#include <otf2/OTF2_GeneralDefinitions.h>
#include <otf2/OTF2_AttributeValue.h>
#include <otf2/OTF2_Definitions.h>
#include <otf2/OTF2_IdMap.h>

Go to the source code of this file.

Typedefs

typedef struct OTF2_DefWriter_struct OTF2_DefWriter
 Handle definition for the external definition writer.
 

Functions

OTF2_ErrorCode OTF2_DefWriter_GetLocationID (const OTF2_DefWriter *writer, OTF2_LocationRef *location)
 Returns the location ID of the location which is related to the writer object. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteMappingTable (OTF2_DefWriter *writer, OTF2_MappingType mappingType, const OTF2_IdMap *idMap)
 Writes a MappingTable definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteClockOffset (OTF2_DefWriter *writer, OTF2_TimeStamp time, int64_t offset, double standardDeviation)
 Writes a ClockOffset definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteString (OTF2_DefWriter *writer, OTF2_StringRef self, const char *string)
 Writes a String definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteAttribute (OTF2_DefWriter *writer, OTF2_AttributeRef self, OTF2_StringRef name, OTF2_StringRef description, OTF2_Type type)
 Writes a Attribute definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteSystemTreeNode (OTF2_DefWriter *writer, OTF2_SystemTreeNodeRef self, OTF2_StringRef name, OTF2_StringRef className, OTF2_SystemTreeNodeRef parent)
 Writes a SystemTreeNode definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteLocationGroup (OTF2_DefWriter *writer, OTF2_LocationGroupRef self, OTF2_StringRef name, OTF2_LocationGroupType locationGroupType, OTF2_SystemTreeNodeRef systemTreeParent, OTF2_LocationGroupRef creatingLocationGroup)
 Writes a LocationGroup definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteLocation (OTF2_DefWriter *writer, OTF2_LocationRef self, OTF2_StringRef name, OTF2_LocationType locationType, uint64_t numberOfEvents, OTF2_LocationGroupRef locationGroup)
 Writes a Location definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteRegion (OTF2_DefWriter *writer, OTF2_RegionRef self, OTF2_StringRef name, OTF2_StringRef canonicalName, OTF2_StringRef description, OTF2_RegionRole regionRole, OTF2_Paradigm paradigm, OTF2_RegionFlag regionFlags, OTF2_StringRef sourceFile, uint32_t beginLineNumber, uint32_t endLineNumber)
 Writes a Region definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCallsite (OTF2_DefWriter *writer, OTF2_CallsiteRef self, OTF2_StringRef sourceFile, uint32_t lineNumber, OTF2_RegionRef enteredRegion, OTF2_RegionRef leftRegion)
 Writes a Callsite definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCallpath (OTF2_DefWriter *writer, OTF2_CallpathRef self, OTF2_CallpathRef parent, OTF2_RegionRef region)
 Writes a Callpath definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteGroup (OTF2_DefWriter *writer, OTF2_GroupRef self, OTF2_StringRef name, OTF2_GroupType groupType, OTF2_Paradigm paradigm, OTF2_GroupFlag groupFlags, uint32_t numberOfMembers, const uint64_t *members)
 Writes a Group definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteMetricMember (OTF2_DefWriter *writer, OTF2_MetricMemberRef self, OTF2_StringRef name, OTF2_StringRef description, OTF2_MetricType metricType, OTF2_MetricMode metricMode, OTF2_Type valueType, OTF2_Base base, int64_t exponent, OTF2_StringRef unit)
 Writes a MetricMember definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteMetricClass (OTF2_DefWriter *writer, OTF2_MetricRef self, uint8_t numberOfMetrics, const OTF2_MetricMemberRef *metricMembers, OTF2_MetricOccurrence metricOccurrence, OTF2_RecorderKind recorderKind)
 Writes a MetricClass definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteMetricInstance (OTF2_DefWriter *writer, OTF2_MetricRef self, OTF2_MetricRef metricClass, OTF2_LocationRef recorder, OTF2_MetricScope metricScope, uint64_t scope)
 Writes a MetricInstance definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteComm (OTF2_DefWriter *writer, OTF2_CommRef self, OTF2_StringRef name, OTF2_GroupRef group, OTF2_CommRef parent, OTF2_CommFlag flags)
 Writes a Comm definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteParameter (OTF2_DefWriter *writer, OTF2_ParameterRef self, OTF2_StringRef name, OTF2_ParameterType parameterType)
 Writes a Parameter definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteRmaWin (OTF2_DefWriter *writer, OTF2_RmaWinRef self, OTF2_StringRef name, OTF2_CommRef comm, OTF2_RmaWinFlag flags)
 Writes a RmaWin definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteMetricClassRecorder (OTF2_DefWriter *writer, OTF2_MetricRef metric, OTF2_LocationRef recorder)
 Writes a MetricClassRecorder definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteSystemTreeNodeProperty (OTF2_DefWriter *writer, OTF2_SystemTreeNodeRef systemTreeNode, OTF2_StringRef name, OTF2_Type type, OTF2_AttributeValue value)
 Writes a SystemTreeNodeProperty definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteSystemTreeNodeDomain (OTF2_DefWriter *writer, OTF2_SystemTreeNodeRef systemTreeNode, OTF2_SystemTreeDomain systemTreeDomain)
 Writes a SystemTreeNodeDomain definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteLocationGroupProperty (OTF2_DefWriter *writer, OTF2_LocationGroupRef locationGroup, OTF2_StringRef name, OTF2_Type type, OTF2_AttributeValue value)
 Writes a LocationGroupProperty definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteLocationProperty (OTF2_DefWriter *writer, OTF2_LocationRef location, OTF2_StringRef name, OTF2_Type type, OTF2_AttributeValue value)
 Writes a LocationProperty definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCartDimension (OTF2_DefWriter *writer, OTF2_CartDimensionRef self, OTF2_StringRef name, uint32_t size, OTF2_CartPeriodicity cartPeriodicity)
 Writes a CartDimension definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCartTopology (OTF2_DefWriter *writer, OTF2_CartTopologyRef self, OTF2_StringRef name, OTF2_CommRef communicator, uint8_t numberOfDimensions, const OTF2_CartDimensionRef *cartDimensions)
 Writes a CartTopology definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCartCoordinate (OTF2_DefWriter *writer, OTF2_CartTopologyRef cartTopology, uint32_t rank, uint8_t numberOfDimensions, const uint32_t *coordinates)
 Writes a CartCoordinate definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteSourceCodeLocation (OTF2_DefWriter *writer, OTF2_SourceCodeLocationRef self, OTF2_StringRef file, uint32_t lineNumber)
 Writes a SourceCodeLocation definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCallingContext (OTF2_DefWriter *writer, OTF2_CallingContextRef self, OTF2_RegionRef region, OTF2_SourceCodeLocationRef sourceCodeLocation, OTF2_CallingContextRef parent)
 Writes a CallingContext definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCallingContextProperty (OTF2_DefWriter *writer, OTF2_CallingContextRef callingContext, OTF2_StringRef name, OTF2_Type type, OTF2_AttributeValue value)
 Writes a CallingContextProperty definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteInterruptGenerator (OTF2_DefWriter *writer, OTF2_InterruptGeneratorRef self, OTF2_StringRef name, OTF2_InterruptGeneratorMode interruptGeneratorMode, OTF2_Base base, int64_t exponent, uint64_t period)
 Writes a InterruptGenerator definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteIoFileProperty (OTF2_DefWriter *writer, OTF2_IoFileRef ioFile, OTF2_StringRef name, OTF2_Type type, OTF2_AttributeValue value)
 Writes a IoFileProperty definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteIoRegularFile (OTF2_DefWriter *writer, OTF2_IoFileRef self, OTF2_StringRef name, OTF2_SystemTreeNodeRef scope)
 Writes a IoRegularFile definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteIoDirectory (OTF2_DefWriter *writer, OTF2_IoFileRef self, OTF2_StringRef name, OTF2_SystemTreeNodeRef scope)
 Writes a IoDirectory definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteIoHandle (OTF2_DefWriter *writer, OTF2_IoHandleRef self, OTF2_StringRef name, OTF2_IoFileRef file, OTF2_IoParadigmRef ioParadigm, OTF2_IoHandleFlag ioHandleFlags, OTF2_CommRef comm, OTF2_IoHandleRef parent)
 Writes a IoHandle definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteIoPreCreatedHandleState (OTF2_DefWriter *writer, OTF2_IoHandleRef ioHandle, OTF2_IoAccessMode mode, OTF2_IoStatusFlag statusFlags)
 Writes a IoPreCreatedHandleState definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteCallpathParameter (OTF2_DefWriter *writer, OTF2_CallpathRef callpath, OTF2_ParameterRef parameter, OTF2_Type type, OTF2_AttributeValue value)
 Writes a CallpathParameter definition record into the DefWriter. More...
 
OTF2_ErrorCode OTF2_DefWriter_WriteInterComm (OTF2_DefWriter *writer, OTF2_CommRef self, OTF2_StringRef name, OTF2_GroupRef groupA, OTF2_GroupRef groupB, OTF2_CommRef commonCommunicator, OTF2_CommFlag flags)
 Writes a InterComm definition record into the DefWriter. More...
 

Detailed Description

This file provides all routines that write definition records of a single location.

Source template
templates/OTF2_DefWriter.tmpl.h

Function Documentation

OTF2_ErrorCode OTF2_DefWriter_GetLocationID ( const OTF2_DefWriter writer,
OTF2_LocationRef location 
)

Returns the location ID of the location which is related to the writer object.

Parameters
writerWriter object.
locationReturn location reference.
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteMappingTable ( OTF2_DefWriter writer,
OTF2_MappingType  mappingType,
const OTF2_IdMap idMap 
)

Writes a MappingTable definition record into the DefWriter.

Mapping tables are needed for situations where an ID is not globally known at measurement time. They are applied automatically at reading.

Parameters
writerWriter object.
mappingTypeSays to what type of ID the mapping table has to be applied.
idMapMapping table.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteClockOffset ( OTF2_DefWriter writer,
OTF2_TimeStamp  time,
int64_t  offset,
double  standardDeviation 
)

Writes a ClockOffset definition record into the DefWriter.

Clock offsets are used for clock corrections.

Parameters
writerWriter object.
timeTime when this offset was determined.
offsetThe offset to the global clock which was determined at time.
standardDeviationA possible standard deviation, which can be used as a metric for the quality of the offset.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteString ( OTF2_DefWriter writer,
OTF2_StringRef  self,
const char *  string 
)

Writes a String definition record into the DefWriter.

The string definition.

Parameters
writerWriter object.
selfThe unique identifier for this String definition.
stringThe string, null terminated.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteAttribute ( OTF2_DefWriter writer,
OTF2_AttributeRef  self,
OTF2_StringRef  name,
OTF2_StringRef  description,
OTF2_Type  type 
)

Writes a Attribute definition record into the DefWriter.

The attribute definition.

Parameters
writerWriter object.
selfThe unique identifier for this Attribute definition.
nameName of the attribute. References a String definition.
descriptionDescription of the attribute. References a String definition. Since version 1.4.
typeType of the attribute value.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteSystemTreeNode ( OTF2_DefWriter writer,
OTF2_SystemTreeNodeRef  self,
OTF2_StringRef  name,
OTF2_StringRef  className,
OTF2_SystemTreeNodeRef  parent 
)

Writes a SystemTreeNode definition record into the DefWriter.

The system tree node definition.

Parameters
writerWriter object.
selfThe unique identifier for this SystemTreeNode definition.
nameFree form instance name of this node. References a String definition.
classNameFree form class name of this node References a String definition.
parentParent ID of this node. May be OTF2_UNDEFINED_SYSTEM_TREE_NODE to indicate that there is no parent. References a SystemTreeNode definition.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteLocationGroup ( OTF2_DefWriter writer,
OTF2_LocationGroupRef  self,
OTF2_StringRef  name,
OTF2_LocationGroupType  locationGroupType,
OTF2_SystemTreeNodeRef  systemTreeParent,
OTF2_LocationGroupRef  creatingLocationGroup 
)

Writes a LocationGroup definition record into the DefWriter.

The location group definition.

Parameters
writerWriter object.
selfThe unique identifier for this LocationGroup definition.
nameName of the group. References a String definition.
locationGroupTypeType of this group.
systemTreeParentParent of this location group in the system tree. References a SystemTreeNode definition.
creatingLocationGroupThe creating location group of this group. For type OTF2_LOCATION_GROUP_TYPE_PROCESS this may be another group of type OTF2_LOCATION_GROUP_TYPE_PROCESS or OTF2_UNDEFINED_LOCATION_GROUP. For type OTF2_LOCATION_GROUP_TYPE_ACCELERATOR, this must be a group of type OTF2_LOCATION_GROUP_TYPE_PROCESS. References a LocationGroup definition. Since version 3.0.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteLocation ( OTF2_DefWriter writer,
OTF2_LocationRef  self,
OTF2_StringRef  name,
OTF2_LocationType  locationType,
uint64_t  numberOfEvents,
OTF2_LocationGroupRef  locationGroup 
)

Writes a Location definition record into the DefWriter.

The location definition.

Parameters
writerWriter object.
selfThe unique identifier for this Location definition.
nameName of the location References a String definition.
locationTypeLocation type.
numberOfEventsNumber of events this location has recorded.
locationGroupLocation group which includes this location. References a LocationGroup definition.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteRegion ( OTF2_DefWriter writer,
OTF2_RegionRef  self,
OTF2_StringRef  name,
OTF2_StringRef  canonicalName,
OTF2_StringRef  description,
OTF2_RegionRole  regionRole,
OTF2_Paradigm  paradigm,
OTF2_RegionFlag  regionFlags,
OTF2_StringRef  sourceFile,
uint32_t  beginLineNumber,
uint32_t  endLineNumber 
)

Writes a Region definition record into the DefWriter.

The region definition.

Parameters
writerWriter object.
selfThe unique identifier for this Region definition.
nameName of the region (demangled name if available). References a String definition.
canonicalNameAlternative name of the region (e.g. mangled name). References a String definition. Since version 1.1.
descriptionA more detailed description of this region. References a String definition.
regionRoleRegion role. Since version 1.1.
paradigmParadigm. Since version 1.1.
regionFlagsRegion flags. Since version 1.1.
sourceFileThe source file where this region was declared. References a String definition.
beginLineNumberStarting line number of this region in the source file.
endLineNumberEnding line number of this region in the source file.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCallsite ( OTF2_DefWriter writer,
OTF2_CallsiteRef  self,
OTF2_StringRef  sourceFile,
uint32_t  lineNumber,
OTF2_RegionRef  enteredRegion,
OTF2_RegionRef  leftRegion 
)

Writes a Callsite definition record into the DefWriter.

The callsite definition.

Parameters
writerWriter object.
selfThe unique identifier for this Callsite definition.
sourceFileThe source file where this call was made. References a String definition.
lineNumberLine number in the source file where this call was made.
enteredRegionThe region which was called. References a Region definition.
leftRegionThe region which made the call. References a Region definition.
Since
Version 1.0
Deprecated:
In version 2.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCallpath ( OTF2_DefWriter writer,
OTF2_CallpathRef  self,
OTF2_CallpathRef  parent,
OTF2_RegionRef  region 
)

Writes a Callpath definition record into the DefWriter.

The callpath definition.

Parameters
writerWriter object.
selfThe unique identifier for this Callpath definition.
parentThe parent of this callpath. References a Callpath definition.
regionThe region of this callpath. References a Region definition.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteGroup ( OTF2_DefWriter writer,
OTF2_GroupRef  self,
OTF2_StringRef  name,
OTF2_GroupType  groupType,
OTF2_Paradigm  paradigm,
OTF2_GroupFlag  groupFlags,
uint32_t  numberOfMembers,
const uint64_t *  members 
)

Writes a Group definition record into the DefWriter.

The group definition.

Parameters
writerWriter object.
selfThe unique identifier for this Group definition.
nameName of this group References a String definition.
groupTypeThe type of this group. Since version 1.2.
paradigmThe paradigm of this communication group. Since version 1.2.
groupFlagsFlags for this group. Since version 1.2.
numberOfMembersThe number of members in this group.
membersThe identifiers of the group members.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteMetricMember ( OTF2_DefWriter writer,
OTF2_MetricMemberRef  self,
OTF2_StringRef  name,
OTF2_StringRef  description,
OTF2_MetricType  metricType,
OTF2_MetricMode  metricMode,
OTF2_Type  valueType,
OTF2_Base  base,
int64_t  exponent,
OTF2_StringRef  unit 
)

Writes a MetricMember definition record into the DefWriter.

A metric is defined by a MetricMember definition. A metric member is always a member of a metric class. Therefore, a single metric is a special case of a metric class with only one member. It is not allowed to reference a metric member ID in a Metric event, but only metric class IDs.

Parameters
writerWriter object.
selfThe unique identifier for this MetricMember definition.
nameName of the metric. References a String definition.
descriptionDescription of the metric. References a String definition.
metricTypeMetric type: PAPI, etc.
metricModeMetric mode: accumulative, fix, relative, etc.
valueTypeType of the value. Only OTF2_TYPE_INT64, OTF2_TYPE_UINT64, and OTF2_TYPE_DOUBLE are valid types. If this metric member is recorded in a Metric event, than this type and the type in the event must match.
baseThe recorded values should be handled in this given base, either binary or decimal. This information can be used if the value needs to be scaled.
exponentThe values inside the Metric events should be scaled by the factor base^exponent, to get the value in its base unit. For example, if the metric values come in as KiBi, than the base should be OTF2_BASE_BINARY and the exponent 10. Than the writer does not need to scale the values up to bytes, but can directly write the KiBi values into the Metric event. At reading time, the reader can apply the scaling factor to get the value in its base unit, ie. in bytes.
unitUnit of the metric. This needs to be the scale free base unit, ie. "bytes", "operations", or "seconds". In particular this unit should not have any scale prefix. References a String definition.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteMetricClass ( OTF2_DefWriter writer,
OTF2_MetricRef  self,
uint8_t  numberOfMetrics,
const OTF2_MetricMemberRef metricMembers,
OTF2_MetricOccurrence  metricOccurrence,
OTF2_RecorderKind  recorderKind 
)

Writes a MetricClass definition record into the DefWriter.

For a metric class it is implicitly given that the event stream that records the metric is also the scope. A metric class can contain multiple different metrics.

Parameters
writerWriter object.
selfThe unique identifier for this MetricClass definition.
numberOfMetricsNumber of metrics within the set.
metricMembersList of metric members. References a MetricMember definition.
metricOccurrenceDefines occurrence of a metric set.
recorderKindWhat kind of locations will record this metric class, or will this metric class only be recorded by metric instances. Since version 1.2.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteMetricInstance ( OTF2_DefWriter writer,
OTF2_MetricRef  self,
OTF2_MetricRef  metricClass,
OTF2_LocationRef  recorder,
OTF2_MetricScope  metricScope,
uint64_t  scope 
)

Writes a MetricInstance definition record into the DefWriter.

A MetricInstance is used to define metrics that are recorded at one location for multiple locations or for another location. The occurrence of a metric instance is implicitly of type OTF2_METRIC_ASYNCHRONOUS.

Parameters
writerWriter object.
selfThe unique identifier for this MetricClass definition.
metricClassThe instanced MetricClass. This metric class must be of kind OTF2_RECORDER_KIND_ABSTRACT. References a MetricClass, or a MetricInstance definition.
recorderRecorder of the metric: location ID. References a Location definition.
metricScopeDefines type of scope: location, location group, system tree node, or a generic group of locations.
scopeScope of metric: ID of a location, location group, system tree node, or a generic group of locations.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteComm ( OTF2_DefWriter writer,
OTF2_CommRef  self,
OTF2_StringRef  name,
OTF2_GroupRef  group,
OTF2_CommRef  parent,
OTF2_CommFlag  flags 
)

Writes a Comm definition record into the DefWriter.

The communicator definition.

Parameters
writerWriter object.
selfThe unique identifier for this Comm definition.
nameThe name given by calling MPI_Comm_set_name on this communicator. Or the empty name to indicate that no name was given. References a String definition.
groupThe describing MPI group of this MPI communicator The group needs to be of type OTF2_GROUP_TYPE_COMM_GROUP or OTF2_GROUP_TYPE_COMM_SELF. References a Group definition.
parentThe parent MPI communicator from which this communicator was created, if any. Use OTF2_UNDEFINED_COMM to indicate no parent. References a Comm definition.
flagsSpecial characteristics of this communicator. Since version 3.0.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteParameter ( OTF2_DefWriter writer,
OTF2_ParameterRef  self,
OTF2_StringRef  name,
OTF2_ParameterType  parameterType 
)

Writes a Parameter definition record into the DefWriter.

The parameter definition.

Parameters
writerWriter object.
selfThe unique identifier for this Parameter definition.
nameName of the parameter (variable name etc.) References a String definition.
parameterTypeType of the parameter, OTF2_ParameterType for possible types.
Since
Version 1.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteRmaWin ( OTF2_DefWriter writer,
OTF2_RmaWinRef  self,
OTF2_StringRef  name,
OTF2_CommRef  comm,
OTF2_RmaWinFlag  flags 
)

Writes a RmaWin definition record into the DefWriter.

A window defines the communication context for any remote-memory access operation.

Parameters
writerWriter object.
selfThe unique identifier for this RmaWin definition.
nameName, e.g. 'GASPI Queue 1', 'NVidia Card 2', etc.. References a String definition.
commCommunicator object used to create the window. References a Comm definition.
flagsSpecial characteristics of this RMA window. Since version 3.0.
Since
Version 1.2
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteMetricClassRecorder ( OTF2_DefWriter writer,
OTF2_MetricRef  metric,
OTF2_LocationRef  recorder 
)

Writes a MetricClassRecorder definition record into the DefWriter.

The metric class recorder definition.

Parameters
writerWriter object.
metricParent MetricClass, or MetricInstance definition to which this one is a supplementary definition. References a MetricClass, or a MetricInstance definition.
recorderThe location which recorded the referenced metric class. References a Location definition.
Since
Version 1.2
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteSystemTreeNodeProperty ( OTF2_DefWriter writer,
OTF2_SystemTreeNodeRef  systemTreeNode,
OTF2_StringRef  name,
OTF2_Type  type,
OTF2_AttributeValue  value 
)

Writes a SystemTreeNodeProperty definition record into the DefWriter.

An arbitrary key/value property for a SystemTreeNode definition.

Parameters
writerWriter object.
systemTreeNodeParent SystemTreeNode definition to which this one is a supplementary definition. References a SystemTreeNode definition.
nameName of the property. References a String definition.
typeThe type of this property. Since version 2.0.
valueThe value of this property. Since version 2.0.
Since
Version 1.2
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteSystemTreeNodeDomain ( OTF2_DefWriter writer,
OTF2_SystemTreeNodeRef  systemTreeNode,
OTF2_SystemTreeDomain  systemTreeDomain 
)

Writes a SystemTreeNodeDomain definition record into the DefWriter.

The system tree node domain definition.

Parameters
writerWriter object.
systemTreeNodeParent SystemTreeNode definition to which this one is a supplementary definition. References a SystemTreeNode definition.
systemTreeDomainThe domain in which the referenced SystemTreeNode operates in.
Since
Version 1.2
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteLocationGroupProperty ( OTF2_DefWriter writer,
OTF2_LocationGroupRef  locationGroup,
OTF2_StringRef  name,
OTF2_Type  type,
OTF2_AttributeValue  value 
)

Writes a LocationGroupProperty definition record into the DefWriter.

An arbitrary key/value property for a LocationGroup definition.

Parameters
writerWriter object.
locationGroupParent LocationGroup definition to which this one is a supplementary definition. References a LocationGroup definition.
nameName of the property. References a String definition.
typeThe type of this property. Since version 2.0.
valueThe value of this property. Since version 2.0.
Since
Version 1.3
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteLocationProperty ( OTF2_DefWriter writer,
OTF2_LocationRef  location,
OTF2_StringRef  name,
OTF2_Type  type,
OTF2_AttributeValue  value 
)

Writes a LocationProperty definition record into the DefWriter.

An arbitrary key/value property for a Location definition.

Parameters
writerWriter object.
locationParent Location definition to which this one is a supplementary definition. References a Location definition.
nameName of the property. References a String definition.
typeThe type of this property. Since version 2.0.
valueThe value of this property. Since version 2.0.
Since
Version 1.3
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCartDimension ( OTF2_DefWriter writer,
OTF2_CartDimensionRef  self,
OTF2_StringRef  name,
uint32_t  size,
OTF2_CartPeriodicity  cartPeriodicity 
)

Writes a CartDimension definition record into the DefWriter.

Each dimension in a Cartesian topology is composed of a global ID, a name, its size, and whether it is periodic or not.

Parameters
writerWriter object.
selfThe unique identifier for this CartDimension definition.
nameThe name of the Cartesian topology dimension. References a String definition.
sizeThe size of the Cartesian topology dimension.
cartPeriodicityPeriodicity of the Cartesian topology dimension.
Since
Version 1.3
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCartTopology ( OTF2_DefWriter writer,
OTF2_CartTopologyRef  self,
OTF2_StringRef  name,
OTF2_CommRef  communicator,
uint8_t  numberOfDimensions,
const OTF2_CartDimensionRef cartDimensions 
)

Writes a CartTopology definition record into the DefWriter.

Each topology is described by a global ID, a reference to its name, a reference to a communicator, the number of dimensions, and references to those dimensions. The topology type is defined by the paradigm of the group referenced by the associated communicator.

Parameters
writerWriter object.
selfThe unique identifier for this CartTopology definition.
nameThe name of the topology. References a String definition.
communicatorCommunicator object used to create the topology. References a Comm definition.
numberOfDimensionsNumber of dimensions.
cartDimensionsThe dimensions of this topology. References a CartDimension definition.
Since
Version 1.3
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCartCoordinate ( OTF2_DefWriter writer,
OTF2_CartTopologyRef  cartTopology,
uint32_t  rank,
uint8_t  numberOfDimensions,
const uint32_t *  coordinates 
)

Writes a CartCoordinate definition record into the DefWriter.

Defines the coordinate of the location referenced by the given rank (w.r.t. the communicator associated to the topology) in the referenced topology.

Parameters
writerWriter object.
cartTopologyParent CartTopology definition to which this one is a supplementary definition. References a CartTopology definition.
rankThe rank w.r.t. the communicator associated to the topology referencing this coordinate.
numberOfDimensionsNumber of dimensions.
coordinatesCoordinates, indexed by dimension.
Since
Version 1.3
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteSourceCodeLocation ( OTF2_DefWriter writer,
OTF2_SourceCodeLocationRef  self,
OTF2_StringRef  file,
uint32_t  lineNumber 
)

Writes a SourceCodeLocation definition record into the DefWriter.

The definition of a source code location as tuple of the corresponding file name and line number.

When used to attach source code annotations to events, use the OTF2_AttributeList with an Attribute definition named "SOURCE_CODE_LOCATION" and of type OTF2_TYPE_SOURCE_CODE_LOCATION.

Parameters
writerWriter object.
selfThe unique identifier for this SourceCodeLocation definition.
fileThe name of the file for the source code location. References a String definition.
lineNumberThe line number for the source code location.
Since
Version 1.5
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCallingContext ( OTF2_DefWriter writer,
OTF2_CallingContextRef  self,
OTF2_RegionRef  region,
OTF2_SourceCodeLocationRef  sourceCodeLocation,
OTF2_CallingContextRef  parent 
)

Writes a CallingContext definition record into the DefWriter.

Defines a node in the calling context tree. These nodes are referenced in the CallingContextSample, CallingContextEnter, and CallingContextLeave events.

The referenced CallingContext node in these events form a path which represents the calling context at this time. This path will be partitioned into at most three sub-paths by the unwindDistance attribute. For the CallingContextLeave event, the unwindDistance is defined to be 1.

Starting from the referenced CallingContext node, the first \( N \ge 0 \) nodes were newly entered regions since the previous calling context event. The next node is a region which was not left but made progress since the previous calling context event. All other nodes did not make progress at all, and thus the regions were neither left nor entered again. The unwindDistance is then \( N + 1 \). In case the unwindDistance is \( 0 \), there are neither newly entered regions nor regions which made progress.

It is guaranteed, that the node referenced by the unwindDistance exists in the previous and current calling context. All descendants of this node's child in the previous calling context were left since the previous calling context event.

It is valid that this node is the OTF2_UNDEFINED_CALLING_CONTEXT node and that this node is already reached after unwindDistance \( - 1 \) steps. In the latter case, there exists no region which made progress, all regions in the previous calling context were left and all regions in the current calling context were newly entered.

Note that for CallingContextLeave events, the parent of the referenced CallingContext must be used as the previous calling context for the next event.

Regions which were entered with a CallingContextEnter event form an upper bound for the unwind distance, i.e., the unwindDistance points either to the parent of the last such entered region, or a node which is a descendant to this parent.

To summarize, an unwindDistance of \( 0 \) means that no regions were left, newly entered, or made any progress. An unwindDistance of \( 1 \) means that some regions were left regarding the previous calling context, no regions were newly entered, and there was progress in the region of the first node. An unwindDistance greater than \( 1 \) means that some regions were left regarding the previous calling context, there was progress in one region, and the first unwindDistance \( - 1 \) regions were newly entered.

Parameters
writerWriter object.
selfThe unique identifier for this CallingContext definition.
regionThe region. References a Region definition.
sourceCodeLocationThe absolute source code location of this calling context. References a SourceCodeLocation definition.
parentParent ID of this context. References a CallingContext definition.
Since
Version 1.5
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCallingContextProperty ( OTF2_DefWriter writer,
OTF2_CallingContextRef  callingContext,
OTF2_StringRef  name,
OTF2_Type  type,
OTF2_AttributeValue  value 
)

Writes a CallingContextProperty definition record into the DefWriter.

An arbitrary key/value property for a CallingContext definition.

Parameters
writerWriter object.
callingContextParent CallingContext definition to which this one is a supplementary definition. References a CallingContext definition.
nameProperty name. References a String definition.
typeThe type of this property. Must match with the defined type of the property.
valueThe value of this property.
Since
Version 2.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteInterruptGenerator ( OTF2_DefWriter writer,
OTF2_InterruptGeneratorRef  self,
OTF2_StringRef  name,
OTF2_InterruptGeneratorMode  interruptGeneratorMode,
OTF2_Base  base,
int64_t  exponent,
uint64_t  period 
)

Writes a InterruptGenerator definition record into the DefWriter.

Defines an interrupt generator which periodically triggers CallingContextSample events. If the mode of the interrupt generator is set to OTF2_INTERRUPT_GENERATOR_MODE_TIME, the generator produces interrupts which are uniformly distributed over time, and the unit of the period is implicitly in seconds. If the mode is OTF2_INTERRUPT_GENERATOR_MODE_COUNT, the interrupt is triggered if a specific counter threshold is reached in the system. Therefore these samples are unlikely to be uniformly distributed over time. The unit of the period is then implicitly a number (threshold value).

The interrupts period in base unit (which is implicitly seconds or number, based on the mode) is derived out of the base, the exponent, and the period attributes by this formula:

base-period = period x base^exponent

Parameters
writerWriter object.
selfThe unique identifier for this InterruptGenerator definition.
nameThe name of this interrupt generator. References a String definition.
interruptGeneratorModeMode of the interrupt generator.
baseThe base for the period calculation.
exponentThe exponent for the period calculation.
periodThe period this interrupt generator generates interrupts.
Since
Version 1.5
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteIoFileProperty ( OTF2_DefWriter writer,
OTF2_IoFileRef  ioFile,
OTF2_StringRef  name,
OTF2_Type  type,
OTF2_AttributeValue  value 
)

Writes a IoFileProperty definition record into the DefWriter.

Extensible annotation for the polymorphic IoFile definition class.

The tuple (ioFile, name) must be unique.

Parameters
writerWriter object.
ioFileParent IoRegularFile definition to which this one is a supplementary definition. References a IoRegularFile definition.
nameProperty name. References a String definition.
typeThe type of this property.
valueThe value of this property.
Since
Version 2.1
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteIoRegularFile ( OTF2_DefWriter writer,
OTF2_IoFileRef  self,
OTF2_StringRef  name,
OTF2_SystemTreeNodeRef  scope 
)

Writes a IoRegularFile definition record into the DefWriter.

Defines a regular file from which an IoHandle can be created.

This definition is member of the polymorphic IoFile definition class. All definitions of this polymorphic definition class share the same global identifier namespace.

Parameters
writerWriter object.
selfThe unique identifier for this IoRegularFile definition.
nameName of the file. References a String definition.
scopeDefines the physical scope of this IoRegularFile in the system tree. E.g., two IoRegularFile definitions with the same name but different scope values are physically different, thus I/O operations through IoHandles do not operate on the same file. References a SystemTreeNode definition.
Since
Version 2.1
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteIoDirectory ( OTF2_DefWriter writer,
OTF2_IoFileRef  self,
OTF2_StringRef  name,
OTF2_SystemTreeNodeRef  scope 
)

Writes a IoDirectory definition record into the DefWriter.

Defines a directory from which an IoHandle can be created.

This definition is member of the polymorphic IoFile definition class. All definitions of this polymorphic definition class share the same global identifier namespace.

Parameters
writerWriter object.
selfThe unique identifier for this IoRegularFile definition.
nameName of the directory. References a String definition.
scopeDefines the physical scope of this IoDirectory in the system tree. E.g., two IoDirectory definitions with the same name but different scope values are physically different, thus I/O operations through IoHandles do not operate on the same directory. References a SystemTreeNode definition.
Since
Version 2.1
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteIoHandle ( OTF2_DefWriter writer,
OTF2_IoHandleRef  self,
OTF2_StringRef  name,
OTF2_IoFileRef  file,
OTF2_IoParadigmRef  ioParadigm,
OTF2_IoHandleFlag  ioHandleFlags,
OTF2_CommRef  comm,
OTF2_IoHandleRef  parent 
)

Writes a IoHandle definition record into the DefWriter.

Defines an I/O handle which will be used by subsequent I/O operations. I/O operations can only be applied to active I/O handles. An I/O handle gets active either if it was marked with the OTF2_IO_HANDLE_FLAG_PRE_CREATED flag, after it was referenced in an IoCreateHandle event, or it was referenced in the newHandle attribute of an IoDuplicateHandle event. It gets inactive if it was referenced in an IoDestroyHandle event. This life cycle can be repeated indefinitely. Though the OTF2_IO_HANDLE_FLAG_PRE_CREATED flag is unset after a IoDuplicateHandle event. All Locations of a LocationGroup have access to an active IoHandle, regardless which Location of the LocationGroup activated the IoHandle.

Parameters
writerWriter object.
selfThe unique identifier for this IoHandle definition.
nameHandle name. References a String definition.
fileFile identifier. References a IoRegularFile, or a IoDirectory definition.
ioParadigmThe I/O paradigm. References a IoParadigm definition.
ioHandleFlagsSpecial characteristics of this handle.
commScope of the file handle. This scope defines which process can access this file via this handle and also defines the collective context for this handle. References a Comm definition.
parentParent, in case this I/O handle was created and operated by an higher-level I/O paradigm. References a IoHandle definition.
Since
Version 2.1
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteIoPreCreatedHandleState ( OTF2_DefWriter writer,
OTF2_IoHandleRef  ioHandle,
OTF2_IoAccessMode  mode,
OTF2_IoStatusFlag  statusFlags 
)

Writes a IoPreCreatedHandleState definition record into the DefWriter.

Provide the I/O access mode and status flags for pre-created IoHandles.

Only allowed once for a IoHandle definition with the OTF2_IO_HANDLE_FLAG_PRE_CREATED flag set.

Parameters
writerWriter object.
ioHandleParent IoHandle definition to which this one is a supplementary definition. References a IoHandle definition.
modeThe access mode of the pre-created IoHandle.
statusFlagsThe status flags of the pre-created IoHandle.
Since
Version 2.1
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteCallpathParameter ( OTF2_DefWriter writer,
OTF2_CallpathRef  callpath,
OTF2_ParameterRef  parameter,
OTF2_Type  type,
OTF2_AttributeValue  value 
)

Writes a CallpathParameter definition record into the DefWriter.

A parameter for a callpath definition.

Parameters
writerWriter object.
callpathParent Callpath definition to which this one is a supplementary definition. References a Callpath definition.
parameterThe parameter of this callpath. References a Parameter definition.
typeThe type of the attribute value. Must match the type of the parameter.
valueThe value of the parameter for this callpath.
Since
Version 2.2
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.
OTF2_ErrorCode OTF2_DefWriter_WriteInterComm ( OTF2_DefWriter writer,
OTF2_CommRef  self,
OTF2_StringRef  name,
OTF2_GroupRef  groupA,
OTF2_GroupRef  groupB,
OTF2_CommRef  commonCommunicator,
OTF2_CommFlag  flags 
)

Writes a InterComm definition record into the DefWriter.

The inter-communicator definition.

Parameters
writerWriter object.
selfThe unique identifier for this Comm definition.
nameThe name given by calling MPI_Comm_set_name on this communicator. Or the empty name to indicate that no name was given. References a String definition.
groupAOne of the two MPI process groups in the intercommunicator. The group needs to be of type OTF2_GROUP_TYPE_COMM_GROUP or OTF2_GROUP_TYPE_COMM_SELF. References a Group definition.
groupBThe other of the two MPI process groups in the intercommunicator. The group needs to be of type OTF2_GROUP_TYPE_COMM_GROUP or OTF2_GROUP_TYPE_COMM_SELF. References a Group definition.
commonCommunicatorThe common peer MPI communicator used to create this inter-communicator. Use OTF2_UNDEFINED_COMM if no such communicator was used. References a Comm, or a InterComm definition.
flagsSpecial characteristics of this communicator.
Since
Version 3.0
Returns
OTF2_SUCCESS if successful, an error code if an error occurs.