41 #ifndef SCOREP_PUBLICTYPES_H
42 #define SCOREP_PUBLICTYPES_H
53 #define SCOREP_INVALID_PID 0
58 #define SCOREP_INVALID_TID 0
71 #define SCOREP_INVALID_EXIT_STATUS ( ( int64_t )( ~( ( ~( ( uint64_t )0u ) ) >> 1 ) ) )
86 #define SCOREP_INVALID_LINE_NO 0
100 #define SCOREP_MOVABLE_NULL 0
117 #define SCOREP_INVALID_SOURCE_FILE SCOREP_MOVABLE_NULL
129 #define SCOREP_INVALID_METRIC SCOREP_MOVABLE_NULL
141 #define SCOREP_INVALID_SAMPLING_SET SCOREP_MOVABLE_NULL
153 #define SCOREP_INVALID_REGION SCOREP_MOVABLE_NULL
165 #define SCOREP_INVALID_PARADIGM SCOREP_MOVABLE_NULL
170 #define SCOREP_IO_UNKNOWN_OFFSET UINT64_MAX
214 #define SCOREP_LOCATION_TYPES \
215 SCOREP_LOCATION_TYPE( CPU_THREAD, "CPU thread" ) \
216 SCOREP_LOCATION_TYPE( GPU, "GPU" ) \
217 SCOREP_LOCATION_TYPE( METRIC, "metric location" ) \
222 #define SCOREP_LOCATION_TYPE( NAME, name_string ) SCOREP_LOCATION_TYPE_ ## NAME,
224 #undef SCOREP_LOCATION_TYPE
226 SCOREP_NUMBER_OF_LOCATION_TYPES,
263 #define SCOREP_ALL_TARGET_RANKS -1
269 #define SCOREP_INVALID_ROOT_RANK -1
275 #define SCOREP_MPI_ROOT -2
281 #define SCOREP_MPI_PROC_NULL -3
300 #define SCOREP_PARADIGM_CLASSES \
301 SCOREP_PARADIGM_CLASS( MPP, "multi-process", PROCESS ) \
302 SCOREP_PARADIGM_CLASS( THREAD_FORK_JOIN, "fork/join", THREAD_FORK_JOIN ) \
303 SCOREP_PARADIGM_CLASS( THREAD_CREATE_WAIT, "create/wait", THREAD_CREATE_WAIT ) \
304 SCOREP_PARADIGM_CLASS( ACCELERATOR, "accelerator", ACCELERATOR )
309 #define SCOREP_PARADIGM_CLASS( NAME, name, OTF2_NAME ) \
310 SCOREP_PARADIGM_CLASS_ ## NAME,
311 SCOREP_PARADIGM_CLASSES
313 #undef SCOREP_PARADIGM_CLASS
341 #define SCOREP_PARADIGMS \
342 SCOREP_PARADIGM( MEASUREMENT, "measurement", MEASUREMENT_SYSTEM ) \
343 SCOREP_PARADIGM( USER, "user", USER ) \
344 SCOREP_PARADIGM( COMPILER, "compiler", COMPILER ) \
345 SCOREP_PARADIGM( SAMPLING, "sampling", SAMPLING ) \
346 SCOREP_PARADIGM( MEMORY, "memory", NONE ) \
347 SCOREP_PARADIGM( LIBWRAP, "libwrap", NONE ) \
348 SCOREP_PARADIGM( MPI, "mpi", MPI ) \
349 SCOREP_PARADIGM( SHMEM, "shmem", SHMEM ) \
350 SCOREP_PARADIGM( OPENMP, "openmp", OPENMP ) \
351 SCOREP_PARADIGM( PTHREAD, "pthread", PTHREAD ) \
352 SCOREP_PARADIGM( ORPHAN_THREAD, "orphan thread", UNKNOWN ) \
353 SCOREP_PARADIGM( CUDA, "cuda", CUDA ) \
354 SCOREP_PARADIGM( OPENCL, "opencl", OPENCL ) \
355 SCOREP_PARADIGM( OPENACC, "openacc", OPENACC ) \
356 SCOREP_PARADIGM( IO, "io", NONE ) \
357 SCOREP_PARADIGM( KOKKOS, "kokkos", KOKKOS ) \
358 SCOREP_PARADIGM( HIP, "hip", HIP )
363 #define SCOREP_PARADIGM( NAME, name_str, OTF2_NAME ) \
364 SCOREP_PARADIGM_ ## NAME,
367 #undef SCOREP_PARADIGM
447 #define SCOREP_REGION_TYPES \
448 SCOREP_REGION_TYPE( COLL_ONE2ALL, "one2all" ) \
449 SCOREP_REGION_TYPE( COLL_ALL2ONE, "all2one" ) \
450 SCOREP_REGION_TYPE( COLL_ALL2ALL, "all2all" ) \
451 SCOREP_REGION_TYPE( COLL_OTHER, "other collective" ) \
452 SCOREP_REGION_TYPE( POINT2POINT, "point2point" ) \
453 SCOREP_REGION_TYPE( PARALLEL, "parallel" ) \
454 SCOREP_REGION_TYPE( SECTIONS, "sections" ) \
455 SCOREP_REGION_TYPE( SECTION, "section" ) \
456 SCOREP_REGION_TYPE( WORKSHARE, "workshare" ) \
457 SCOREP_REGION_TYPE( SINGLE, "single" ) \
458 SCOREP_REGION_TYPE( MASTER, "master" ) \
459 SCOREP_REGION_TYPE( CRITICAL, "critical" ) \
460 SCOREP_REGION_TYPE( ATOMIC, "atomic" ) \
461 SCOREP_REGION_TYPE( BARRIER, "barrier" ) \
462 SCOREP_REGION_TYPE( IMPLICIT_BARRIER, "implicit barrier" ) \
463 SCOREP_REGION_TYPE( FLUSH, "flush" ) \
464 SCOREP_REGION_TYPE( CRITICAL_SBLOCK, "critical sblock" ) \
465 SCOREP_REGION_TYPE( SINGLE_SBLOCK, "single sblock" ) \
466 SCOREP_REGION_TYPE( WRAPPER, "wrapper" ) \
467 SCOREP_REGION_TYPE( TASK, "task" ) \
468 SCOREP_REGION_TYPE( TASK_UNTIED, "untied task" ) \
469 SCOREP_REGION_TYPE( TASK_WAIT, "taskwait" ) \
470 SCOREP_REGION_TYPE( TASK_CREATE, "task create" ) \
471 SCOREP_REGION_TYPE( ORDERED, "ordered" ) \
472 SCOREP_REGION_TYPE( ORDERED_SBLOCK, "ordered sblock" ) \
473 SCOREP_REGION_TYPE( ARTIFICIAL, "artificial" ) \
474 SCOREP_REGION_TYPE( RMA, "rma" ) \
475 SCOREP_REGION_TYPE( THREAD_CREATE, "thread create" ) \
476 SCOREP_REGION_TYPE( THREAD_WAIT, "thread wait" ) \
477 SCOREP_REGION_TYPE( ALLOCATE, "allocate" ) \
478 SCOREP_REGION_TYPE( DEALLOCATE, "deallocate" ) \
479 SCOREP_REGION_TYPE( REALLOCATE, "reallocate" ) \
480 SCOREP_REGION_TYPE( FILE_IO, "file io" ) \
481 SCOREP_REGION_TYPE( FILE_IO_METADATA, "file io metadata" ) \
482 SCOREP_REGION_TYPE( KERNEL_LAUNCH, "wrapper" ) \
483 SCOREP_REGION_TYPE( KERNEL, "function" )
486 #define SCOREP_REGION_TYPE( NAME, name_str ) \
487 SCOREP_REGION_ ## NAME,
491 SCOREP_REGION_UNKNOWN = 0,
492 SCOREP_REGION_FUNCTION,
498 SCOREP_REGION_DYNAMIC,
499 SCOREP_REGION_DYNAMIC_PHASE,
500 SCOREP_REGION_DYNAMIC_LOOP,
501 SCOREP_REGION_DYNAMIC_FUNCTION,
502 SCOREP_REGION_DYNAMIC_LOOP_PHASE,
509 #undef SCOREP_REGION_TYPE
524 #define SCOREP_RMA_SYNC_TYPES \
525 SCOREP_RMA_SYNC_TYPE( MEMORY, memory, "memory" ) \
526 SCOREP_RMA_SYNC_TYPE( NOTIFY_IN, notify_in, "notify in" ) \
527 SCOREP_RMA_SYNC_TYPE( NOTIFY_OUT, notify_out, "notify out" )
531 #define SCOREP_RMA_SYNC_TYPE( upper, lower, name ) SCOREP_RMA_SYNC_TYPE_ ## upper,
532 SCOREP_RMA_SYNC_TYPES
533 #undef SCOREP_RMA_SYNC_TYPE
551 #define SCOREP_RMA_SYNC_LEVELS \
552 SCOREP_RMA_SYNC_LEVEL( NONE, none, "none", 0 ) \
553 SCOREP_RMA_SYNC_LEVEL( PROCESS, process, "process", 1 << 0 ) \
554 SCOREP_RMA_SYNC_LEVEL( MEMORY, memory, "memory", 1 << 1 )
558 #define SCOREP_RMA_SYNC_LEVEL( upper, lower, name, value ) \
559 SCOREP_RMA_SYNC_LEVEL_ ## upper = value,
561 SCOREP_RMA_SYNC_LEVELS
562 #undef SCOREP_RMA_SYNC_LEVEL
583 #define SCOREP_RMA_ATOMIC_TYPES \
584 SCOREP_RMA_ATOMIC_TYPE( ACCUMULATE, accumulate, "accumulate" ) \
585 SCOREP_RMA_ATOMIC_TYPE( INCREMENT, increment, "increment" ) \
586 SCOREP_RMA_ATOMIC_TYPE( TEST_AND_SET, test_and_set, "test and set" ) \
587 SCOREP_RMA_ATOMIC_TYPE( COMPARE_AND_SWAP, compare_and_swap, "compare and swap" ) \
588 SCOREP_RMA_ATOMIC_TYPE( SWAP, swap, "swap" ) \
589 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_ADD, fetch_and_add, "fetch and add" ) \
590 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_INCREMENT, fetch_and_increment, "fetch and increment" ) \
591 SCOREP_RMA_ATOMIC_TYPE( ADD, add, "add" ) \
592 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_ACCUMULATE, fetch_and_op, "fetch and accumulate with user-specified operator" )
596 #define SCOREP_RMA_ATOMIC_TYPE( upper, lower, name ) SCOREP_RMA_ATOMIC_TYPE_ ## upper,
597 SCOREP_RMA_ATOMIC_TYPES
598 #undef SCOREP_RMA_ATOMIC_TYPE
600 SCOREP_INVALID_RMA_ATOMIC_TYPE
653 #define SCOREP_IO_PARADIGMS \
654 SCOREP_IO_PARADIGM( POSIX, posix, "POSIX" ) \
655 SCOREP_IO_PARADIGM( ISOC, isoc, "ISOC" ) \
656 SCOREP_IO_PARADIGM( MPI, mpi, "MPI-IO" )
663 #define SCOREP_IO_PARADIGM( upper, lower, id_name ) SCOREP_IO_PARADIGM_ ## upper,
665 #undef SCOREP_IO_PARADIGM
666 SCOREP_INVALID_IO_PARADIGM_TYPE
670 #define SCOREP_NUM_IO_PARADIGMS SCOREP_INVALID_IO_PARADIGM_TYPE
835 #define SCOREP_IPC_DATATYPES \
836 SCOREP_IPC_DATATYPE( BYTE ) \
837 SCOREP_IPC_DATATYPE( CHAR ) \
838 SCOREP_IPC_DATATYPE( UNSIGNED_CHAR ) \
839 SCOREP_IPC_DATATYPE( INT ) \
840 SCOREP_IPC_DATATYPE( UNSIGNED ) \
841 SCOREP_IPC_DATATYPE( INT32_T ) \
842 SCOREP_IPC_DATATYPE( UINT32_T ) \
843 SCOREP_IPC_DATATYPE( INT64_T ) \
844 SCOREP_IPC_DATATYPE( UINT64_T ) \
845 SCOREP_IPC_DATATYPE( DOUBLE )
849 #define SCOREP_IPC_DATATYPE( datatype ) \
850 SCOREP_IPC_ ## datatype,
852 #undef SCOREP_IPC_DATATYPE
853 SCOREP_IPC_NUMBER_OF_DATATYPES
868 #define SCOREP_IPC_OPERATIONS \
869 SCOREP_IPC_OPERATION( BAND ) \
870 SCOREP_IPC_OPERATION( BOR ) \
871 SCOREP_IPC_OPERATION( MIN ) \
872 SCOREP_IPC_OPERATION( MAX ) \
873 SCOREP_IPC_OPERATION( SUM )
877 #define SCOREP_IPC_OPERATION( op ) \
879 SCOREP_IPC_OPERATIONS
880 #undef SCOREP_IPC_OPERATION
881 SCOREP_IPC_NUMBER_OF_OPERATIONS
SCOREP_AnyHandle SCOREP_RegionHandle
Definition: SCOREP_PublicTypes.h:148
Definition: SCOREP_PublicTypes.h:202
Definition: SCOREP_PublicTypes.h:189
Write operations on the file will complete according to the requirements of synchronized I/O data int...
Definition: SCOREP_PublicTypes.h:754
SCOREP_RmaAtomicType
specifies a RMA Atomic Operation Type.
Definition: SCOREP_PublicTypes.h:594
Read access to a file won't update its last access time.
Definition: SCOREP_PublicTypes.h:759
Execute-only access.
Definition: SCOREP_PublicTypes.h:686
Open file in append mode which means I/O write operations are automatically performed at the end of t...
Definition: SCOREP_PublicTypes.h:742
No flag is set.
Definition: SCOREP_PublicTypes.h:912
Open operation will fail if pathname is not a directory.
Definition: SCOREP_PublicTypes.h:703
SCOREP_RegionType
specifies a Region
Definition: SCOREP_PublicTypes.h:489
Definition: SCOREP_PublicTypes.h:204
uint32_t SCOREP_LineNo
Definition: SCOREP_PublicTypes.h:78
Definition: SCOREP_PublicTypes.h:625
Definition: SCOREP_PublicTypes.h:193
The I/O operation was performed in a non-blocking mode.
Definition: SCOREP_PublicTypes.h:809
Definition: SCOREP_PublicTypes.h:197
Definition: SCOREP_PublicTypes.h:382
Gives the advice that no reposition will happen on this I/O handle. E.g., no seek operation or simila...
Definition: SCOREP_PublicTypes.h:721
Definition: SCOREP_PublicTypes.h:902
Definition: SCOREP_PublicTypes.h:195
struct SCOREP_Task * SCOREP_TaskHandle
Definition: SCOREP_PublicTypes.h:175
No flag is set.
Definition: SCOREP_PublicTypes.h:697
SCOREP_IoOperationMode
Definition: SCOREP_PublicTypes.h:786
If the file does not exist, it will be created.
Definition: SCOREP_PublicTypes.h:699
SCOREP_CommunicatorFlag
Definition: SCOREP_PublicTypes.h:909
Definition: SCOREP_PublicTypes.h:227
Delete the file when closing the {IoHandle}.
Definition: SCOREP_PublicTypes.h:761
SCOREP_LockType
Definition: SCOREP_PublicTypes.h:233
Definition: SCOREP_PublicTypes.h:201
Definition: SCOREP_PublicTypes.h:380
Write operation.
Definition: SCOREP_PublicTypes.h:791
Ensure that the file size can be represented by a 64-bit datatype.
Definition: SCOREP_PublicTypes.h:717
Definition: SCOREP_PublicTypes.h:645
Definition: SCOREP_PublicTypes.h:369
Definition: SCOREP_PublicTypes.h:237
Definition: SCOREP_PublicTypes.h:899
There will be communicator event/destroy events.
Definition: SCOREP_PublicTypes.h:914
Definition: SCOREP_PublicTypes.h:774
Definition: SCOREP_PublicTypes.h:772
SCOREP_AnyHandle SCOREP_SourceFileHandle
Definition: SCOREP_PublicTypes.h:111
Definition: SCOREP_PublicTypes.h:778
Definition: SCOREP_PublicTypes.h:194
Definition: SCOREP_PublicTypes.h:241
Create an unnamed temporary file.
Definition: SCOREP_PublicTypes.h:715
SCOREP_SamplingSetClass
Class of locations which recorded a sampling set.
Definition: SCOREP_PublicTypes.h:608
Synchronization/flush operation (request and completion).
Definition: SCOREP_PublicTypes.h:793
Definition: SCOREP_PublicTypes.h:185
SCOREP_AnyHandle SCOREP_ParadigmHandle
Definition: SCOREP_PublicTypes.h:160
Definition: SCOREP_PublicTypes.h:243
uint32_t SCOREP_Allocator_MovableMemory
Definition: SCOREP_PublicTypes.h:93
SCOREP_Allocator_MovableMemory SCOREP_AnyHandle
Definition: SCOREP_PublicTypes.h:105
Definition: SCOREP_PublicTypes.h:315
Unspecified access mode.
Definition: SCOREP_PublicTypes.h:678
Definition: SCOREP_PublicTypes.h:191
SCOREP_AnyHandle SCOREP_MetricHandle
Definition: SCOREP_PublicTypes.h:123
Search-only access.
Definition: SCOREP_PublicTypes.h:688
Definition: SCOREP_PublicTypes.h:384
No special semantics.
Definition: SCOREP_PublicTypes.h:805
Enable close-on-exec flag.
Definition: SCOREP_PublicTypes.h:739
Definition: SCOREP_PublicTypes.h:205
SCOREP_RmaSyncLevel
specifies a RMA synchronization level, used by RMA records to be passed to SCOREP_Rma*() functions...
Definition: SCOREP_PublicTypes.h:556
SCOREP_Ipc_Datatype
specifies an inter process communication data types
Definition: SCOREP_PublicTypes.h:847
Definition: SCOREP_PublicTypes.h:200
Definition: SCOREP_PublicTypes.h:203
Definition: SCOREP_PublicTypes.h:196
There will be RMA window event/destroy events.
Definition: SCOREP_PublicTypes.h:926
SCOREP_ParadigmClass
defines classes of paradigms that are monitored Types:
Definition: SCOREP_PublicTypes.h:307
Definition: SCOREP_PublicTypes.h:611
Definition: SCOREP_PublicTypes.h:192
SCOREP_RmaWindowFlag
Definition: SCOREP_PublicTypes.h:921
Definition: SCOREP_PublicTypes.h:190
Definition: SCOREP_PublicTypes.h:770
Definition: SCOREP_PublicTypes.h:650
Truncate file to length 0 if possible.
Definition: SCOREP_PublicTypes.h:701
Definition: SCOREP_PublicTypes.h:184
Definition: SCOREP_PublicTypes.h:381
No flag is set.
Definition: SCOREP_PublicTypes.h:737
Definition: SCOREP_PublicTypes.h:612
Definition: SCOREP_PublicTypes.h:623
Definition: SCOREP_PublicTypes.h:631
SCOREP_IoSeekOption
Definition: SCOREP_PublicTypes.h:767
Definition: SCOREP_PublicTypes.h:610
Write operations on the file will complete according to the requirements of synchronized I/O file int...
Definition: SCOREP_PublicTypes.h:751
Definition: SCOREP_PublicTypes.h:642
Enable signal-driven I/O.
Definition: SCOREP_PublicTypes.h:747
Definition: SCOREP_PublicTypes.h:629
SCOREP_IoAccessMode
Definition: SCOREP_PublicTypes.h:675
SCOREP_Ipc_Operation
specifies an inter process communication operation for reduce function
Definition: SCOREP_PublicTypes.h:875
I/O operations (including the creation) will fail if they would block the issuing process...
Definition: SCOREP_PublicTypes.h:745
SCOREP_IoStatusFlag
Definition: SCOREP_PublicTypes.h:734
Definition: SCOREP_PublicTypes.h:627
Read-only access.
Definition: SCOREP_PublicTypes.h:680
File is only a location in the filesystem tree and is not suitable for reading and writing...
Definition: SCOREP_PublicTypes.h:713
SCOREP_IoParadigmType
Definition: SCOREP_PublicTypes.h:661
SCOREP_Substrates_RequirementFlag
Definition: SCOREP_PublicTypes.h:896
SCOREP_AnyHandle SCOREP_SamplingSetHandle
Definition: SCOREP_PublicTypes.h:136
Definition: SCOREP_PublicTypes.h:780
#define SCOREP_LOCATION_TYPES
Definition: SCOREP_PublicTypes.h:214
Read-write access.
Definition: SCOREP_PublicTypes.h:684
The I/O operation was performed collectively over the communicator of the referenced {IoHandle} handl...
Definition: SCOREP_PublicTypes.h:812
Ensure that this call creates the file.
Definition: SCOREP_PublicTypes.h:705
Instruct I/O operations to reduce caching effects, e.g., direct file I/O.
Definition: SCOREP_PublicTypes.h:757
int SCOREP_MpiRank
Definition: SCOREP_PublicTypes.h:249
SCOREP_IoCreationFlag
Definition: SCOREP_PublicTypes.h:694
Definition: SCOREP_PublicTypes.h:535
uint64_t SCOREP_MpiRequestId
Definition: SCOREP_PublicTypes.h:255
Definition: SCOREP_PublicTypes.h:898
Definition: SCOREP_PublicTypes.h:199
Definition: SCOREP_PublicTypes.h:183
Definition: SCOREP_PublicTypes.h:186
SCOREP_IoOperationFlag
Definition: SCOREP_PublicTypes.h:802
SCOREP_CollectiveType
Types to specify the used collectives in calls to SCOREP_MpiCollectiveBegin and SCOREP_RmaCollectiveB...
Definition: SCOREP_PublicTypes.h:181
int64_t SCOREP_ExitStatus
Definition: SCOREP_PublicTypes.h:64
Write-only access.
Definition: SCOREP_PublicTypes.h:682
Definition: SCOREP_PublicTypes.h:648
Gives the advice that this will be the only active {IoHandle} of the {IoParadigmType} which will oper...
Definition: SCOREP_PublicTypes.h:727
If pathname is a symbolic link, then the open operation will fail.
Definition: SCOREP_PublicTypes.h:710
Read operation.
Definition: SCOREP_PublicTypes.h:789
Definition: SCOREP_PublicTypes.h:188
Definition: SCOREP_PublicTypes.h:506
File is a terminal device and should not be promoted to a controlling terminal, if none existed befor...
Definition: SCOREP_PublicTypes.h:708
SCOREP_MetricScope
Types to be used in defining the scope of a scoped sampling set.
Definition: SCOREP_PublicTypes.h:620
Definition: SCOREP_PublicTypes.h:776
SCOREP_RmaSyncType
Type of direct RMA synchronization call.
Definition: SCOREP_PublicTypes.h:529
Definition: SCOREP_PublicTypes.h:900
The I/O operation was performed in a non-collective mode. (default)
Definition: SCOREP_PublicTypes.h:814
The I/O operation was performed in a blocking mode (default).
Definition: SCOREP_PublicTypes.h:807
SCOREP_ParadigmType
defines paradigms that are be monitored
Definition: SCOREP_PublicTypes.h:361
SCOREP_ParameterType
defines types to be used in defining a parameter for parameter based profiling (SCOREP_Definitions_Ne...
Definition: SCOREP_PublicTypes.h:378
Definition: SCOREP_PublicTypes.h:198
Definition: SCOREP_PublicTypes.h:187
SCOREP_MetricOccurrence
Types to be used in defining the occurrence of a sampling set.
Definition: SCOREP_PublicTypes.h:639
SCOREP_LocationType
Definition: SCOREP_PublicTypes.h:220
No flag is set.
Definition: SCOREP_PublicTypes.h:924