22 #ifndef SCOREP_PUBLICTYPES_H
23 #define SCOREP_PUBLICTYPES_H
34 #define SCOREP_INVALID_PID 0
39 #define SCOREP_INVALID_TID 0
52 #define SCOREP_INVALID_EXIT_STATUS ( ( int64_t )( ~( ( ~( ( uint64_t )0u ) ) >> 1 ) ) )
67 #define SCOREP_INVALID_LINE_NO 0
81 #define SCOREP_MOVABLE_NULL 0
98 #define SCOREP_INVALID_SOURCE_FILE SCOREP_MOVABLE_NULL
110 #define SCOREP_INVALID_METRIC SCOREP_MOVABLE_NULL
122 #define SCOREP_INVALID_SAMPLING_SET SCOREP_MOVABLE_NULL
134 #define SCOREP_INVALID_REGION SCOREP_MOVABLE_NULL
146 #define SCOREP_INVALID_PARADIGM SCOREP_MOVABLE_NULL
151 #define SCOREP_IO_UNKNOWN_OFFSET UINT64_MAX
195 #define SCOREP_LOCATION_TYPES \
196 SCOREP_LOCATION_TYPE( CPU_THREAD, "CPU thread" ) \
197 SCOREP_LOCATION_TYPE( GPU, "GPU" ) \
198 SCOREP_LOCATION_TYPE( METRIC, "metric location" ) \
203 #define SCOREP_LOCATION_TYPE( NAME, name_string ) SCOREP_LOCATION_TYPE_ ## NAME,
205 #undef SCOREP_LOCATION_TYPE
207 SCOREP_NUMBER_OF_LOCATION_TYPES,
249 #define SCOREP_ALL_TARGET_RANKS -1
255 #define SCOREP_INVALID_ROOT_RANK -1
261 #define SCOREP_MPI_ROOT -2
267 #define SCOREP_MPI_PROC_NULL -3
272 #define SCOREP_INVALID_MESSAGE_ID UINT64_MAX
291 #define SCOREP_PARADIGM_CLASSES \
292 SCOREP_PARADIGM_CLASS( MPP, "multi-process", PROCESS ) \
293 SCOREP_PARADIGM_CLASS( THREAD_FORK_JOIN, "fork/join", THREAD_FORK_JOIN ) \
294 SCOREP_PARADIGM_CLASS( THREAD_CREATE_WAIT, "create/wait", THREAD_CREATE_WAIT ) \
295 SCOREP_PARADIGM_CLASS( ACCELERATOR, "accelerator", ACCELERATOR )
300 #define SCOREP_PARADIGM_CLASS( NAME, name, OTF2_NAME ) \
301 SCOREP_PARADIGM_CLASS_ ## NAME,
302 SCOREP_PARADIGM_CLASSES
304 #undef SCOREP_PARADIGM_CLASS
335 #define SCOREP_PARADIGMS \
336 SCOREP_PARADIGM( MEASUREMENT, "measurement", MEASUREMENT_SYSTEM ) \
337 SCOREP_PARADIGM( USER, "user", USER ) \
338 SCOREP_PARADIGM( COMPILER, "compiler", COMPILER ) \
339 SCOREP_PARADIGM( SAMPLING, "sampling", SAMPLING ) \
340 SCOREP_PARADIGM( MEMORY, "memory", NONE ) \
341 SCOREP_PARADIGM( LIBWRAP, "libwrap", NONE ) \
342 SCOREP_PARADIGM( MPI, "mpi", MPI ) \
343 SCOREP_PARADIGM( SHMEM, "shmem", SHMEM ) \
344 SCOREP_PARADIGM( OPENMP, "openmp", OPENMP ) \
345 SCOREP_PARADIGM( PTHREAD, "pthread", PTHREAD ) \
346 SCOREP_PARADIGM( ORPHAN_THREAD, "orphan thread", UNKNOWN ) \
347 SCOREP_PARADIGM( CUDA, "cuda", CUDA ) \
348 SCOREP_PARADIGM( OPENCL, "opencl", OPENCL ) \
349 SCOREP_PARADIGM( OPENACC, "openacc", OPENACC ) \
350 SCOREP_PARADIGM( IO, "io", NONE ) \
351 SCOREP_PARADIGM( KOKKOS, "kokkos", KOKKOS ) \
352 SCOREP_PARADIGM( HIP, "hip", HIP ) \
353 SCOREP_PARADIGM( OPENMP_TARGET, "openmp target", OPENMP_TARGET )
357 #define SCOREP_PARADIGM( NAME, name_str, OTF2_NAME ) \
358 SCOREP_PARADIGM_ ## NAME,
361 #undef SCOREP_PARADIGM
442 #define SCOREP_REGION_TYPES \
443 SCOREP_REGION_TYPE( COLL_ONE2ALL, "one2all" ) \
444 SCOREP_REGION_TYPE( COLL_ALL2ONE, "all2one" ) \
445 SCOREP_REGION_TYPE( COLL_ALL2ALL, "all2all" ) \
446 SCOREP_REGION_TYPE( COLL_OTHER, "other collective" ) \
447 SCOREP_REGION_TYPE( POINT2POINT, "point2point" ) \
448 SCOREP_REGION_TYPE( PARALLEL, "parallel" ) \
449 SCOREP_REGION_TYPE( SECTIONS, "sections" ) \
450 SCOREP_REGION_TYPE( SECTION, "section" ) \
451 SCOREP_REGION_TYPE( WORKSHARE, "workshare" ) \
452 SCOREP_REGION_TYPE( SINGLE, "single" ) \
453 SCOREP_REGION_TYPE( MASTER, "master" ) \
454 SCOREP_REGION_TYPE( CRITICAL, "critical" ) \
455 SCOREP_REGION_TYPE( ATOMIC, "atomic" ) \
456 SCOREP_REGION_TYPE( BARRIER, "barrier" ) \
457 SCOREP_REGION_TYPE( IMPLICIT_BARRIER, "implicit barrier" ) \
458 SCOREP_REGION_TYPE( FLUSH, "flush" ) \
459 SCOREP_REGION_TYPE( CRITICAL_SBLOCK, "critical sblock" ) \
460 SCOREP_REGION_TYPE( SINGLE_SBLOCK, "single sblock" ) \
461 SCOREP_REGION_TYPE( WRAPPER, "wrapper" ) \
462 SCOREP_REGION_TYPE( TASK, "task" ) \
463 SCOREP_REGION_TYPE( TASK_UNTIED, "untied task" ) \
464 SCOREP_REGION_TYPE( TASK_WAIT, "taskwait" ) \
465 SCOREP_REGION_TYPE( TASK_CREATE, "task create" ) \
466 SCOREP_REGION_TYPE( ORDERED, "ordered" ) \
467 SCOREP_REGION_TYPE( ORDERED_SBLOCK, "ordered sblock" ) \
468 SCOREP_REGION_TYPE( ARTIFICIAL, "artificial" ) \
469 SCOREP_REGION_TYPE( RMA, "rma" ) \
470 SCOREP_REGION_TYPE( THREAD_CREATE, "thread create" ) \
471 SCOREP_REGION_TYPE( THREAD_WAIT, "thread wait" ) \
472 SCOREP_REGION_TYPE( ALLOCATE, "allocate" ) \
473 SCOREP_REGION_TYPE( DEALLOCATE, "deallocate" ) \
474 SCOREP_REGION_TYPE( REALLOCATE, "reallocate" ) \
475 SCOREP_REGION_TYPE( FILE_IO, "file io" ) \
476 SCOREP_REGION_TYPE( FILE_IO_METADATA, "file io metadata" ) \
477 SCOREP_REGION_TYPE( KERNEL_LAUNCH, "wrapper" ) \
478 SCOREP_REGION_TYPE( KERNEL, "kernel" ) \
479 SCOREP_REGION_TYPE( DATA_TRANSFER, "data transfer" ) \
480 SCOREP_REGION_TYPE( CANCEL, "cancel" )
483 #define SCOREP_REGION_TYPE( NAME, name_str ) \
484 SCOREP_REGION_ ## NAME,
488 SCOREP_REGION_UNKNOWN = 0,
489 SCOREP_REGION_FUNCTION,
495 SCOREP_REGION_DYNAMIC,
496 SCOREP_REGION_DYNAMIC_PHASE,
497 SCOREP_REGION_DYNAMIC_LOOP,
498 SCOREP_REGION_DYNAMIC_FUNCTION,
499 SCOREP_REGION_DYNAMIC_LOOP_PHASE,
506 #undef SCOREP_REGION_TYPE
521 #define SCOREP_RMA_SYNC_TYPES \
522 SCOREP_RMA_SYNC_TYPE( MEMORY, memory, "memory" ) \
523 SCOREP_RMA_SYNC_TYPE( NOTIFY_IN, notify_in, "notify in" ) \
524 SCOREP_RMA_SYNC_TYPE( NOTIFY_OUT, notify_out, "notify out" )
528 #define SCOREP_RMA_SYNC_TYPE( upper, lower, name ) SCOREP_RMA_SYNC_TYPE_ ## upper,
529 SCOREP_RMA_SYNC_TYPES
530 #undef SCOREP_RMA_SYNC_TYPE
548 #define SCOREP_RMA_SYNC_LEVELS \
549 SCOREP_RMA_SYNC_LEVEL( NONE, none, "none", 0 ) \
550 SCOREP_RMA_SYNC_LEVEL( PROCESS, process, "process", 1 << 0 ) \
551 SCOREP_RMA_SYNC_LEVEL( MEMORY, memory, "memory", 1 << 1 )
555 #define SCOREP_RMA_SYNC_LEVEL( upper, lower, name, value ) \
556 SCOREP_RMA_SYNC_LEVEL_ ## upper = value,
558 SCOREP_RMA_SYNC_LEVELS
559 #undef SCOREP_RMA_SYNC_LEVEL
580 #define SCOREP_RMA_ATOMIC_TYPES \
581 SCOREP_RMA_ATOMIC_TYPE( ACCUMULATE, accumulate, "accumulate" ) \
582 SCOREP_RMA_ATOMIC_TYPE( INCREMENT, increment, "increment" ) \
583 SCOREP_RMA_ATOMIC_TYPE( TEST_AND_SET, test_and_set, "test and set" ) \
584 SCOREP_RMA_ATOMIC_TYPE( COMPARE_AND_SWAP, compare_and_swap, "compare and swap" ) \
585 SCOREP_RMA_ATOMIC_TYPE( SWAP, swap, "swap" ) \
586 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_ADD, fetch_and_add, "fetch and add" ) \
587 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_INCREMENT, fetch_and_increment, "fetch and increment" ) \
588 SCOREP_RMA_ATOMIC_TYPE( ADD, add, "add" ) \
589 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_ACCUMULATE, fetch_and_op, "fetch and accumulate with user-specified operator" )
593 #define SCOREP_RMA_ATOMIC_TYPE( upper, lower, name ) SCOREP_RMA_ATOMIC_TYPE_ ## upper,
594 SCOREP_RMA_ATOMIC_TYPES
595 #undef SCOREP_RMA_ATOMIC_TYPE
597 SCOREP_INVALID_RMA_ATOMIC_TYPE
650 #define SCOREP_IO_PARADIGMS \
651 SCOREP_IO_PARADIGM( POSIX, posix, "POSIX" ) \
652 SCOREP_IO_PARADIGM( ISOC, isoc, "ISOC" ) \
653 SCOREP_IO_PARADIGM( MPI, mpi, "MPI-IO" )
660 #define SCOREP_IO_PARADIGM( upper, lower, id_name ) SCOREP_IO_PARADIGM_ ## upper,
662 #undef SCOREP_IO_PARADIGM
663 SCOREP_INVALID_IO_PARADIGM_TYPE
667 #define SCOREP_NUM_IO_PARADIGMS SCOREP_INVALID_IO_PARADIGM_TYPE
832 #define SCOREP_IPC_DATATYPES \
833 SCOREP_IPC_DATATYPE( BYTE ) \
834 SCOREP_IPC_DATATYPE( CHAR ) \
835 SCOREP_IPC_DATATYPE( UNSIGNED_CHAR ) \
836 SCOREP_IPC_DATATYPE( INT ) \
837 SCOREP_IPC_DATATYPE( UNSIGNED ) \
838 SCOREP_IPC_DATATYPE( INT32_T ) \
839 SCOREP_IPC_DATATYPE( UINT32_T ) \
840 SCOREP_IPC_DATATYPE( INT64_T ) \
841 SCOREP_IPC_DATATYPE( UINT64_T ) \
842 SCOREP_IPC_DATATYPE( DOUBLE )
846 #define SCOREP_IPC_DATATYPE( datatype ) \
847 SCOREP_IPC_ ## datatype,
849 #undef SCOREP_IPC_DATATYPE
850 SCOREP_IPC_NUMBER_OF_DATATYPES
865 #define SCOREP_IPC_OPERATIONS \
866 SCOREP_IPC_OPERATION( BAND ) \
867 SCOREP_IPC_OPERATION( BOR ) \
868 SCOREP_IPC_OPERATION( MIN ) \
869 SCOREP_IPC_OPERATION( MAX ) \
870 SCOREP_IPC_OPERATION( SUM )
874 #define SCOREP_IPC_OPERATION( op ) \
876 SCOREP_IPC_OPERATIONS
877 #undef SCOREP_IPC_OPERATION
878 SCOREP_IPC_NUMBER_OF_OPERATIONS
SCOREP_AnyHandle SCOREP_RegionHandle
Definition: SCOREP_PublicTypes.h:129
Definition: SCOREP_PublicTypes.h:183
Definition: SCOREP_PublicTypes.h:170
Write operations on the file will complete according to the requirements of synchronized I/O data int...
Definition: SCOREP_PublicTypes.h:751
SCOREP_RmaAtomicType
specifies a RMA Atomic Operation Type.
Definition: SCOREP_PublicTypes.h:591
Read access to a file won't update its last access time.
Definition: SCOREP_PublicTypes.h:756
Execute-only access.
Definition: SCOREP_PublicTypes.h:683
Open file in append mode which means I/O write operations are automatically performed at the end of t...
Definition: SCOREP_PublicTypes.h:739
No flag is set.
Definition: SCOREP_PublicTypes.h:909
Open operation will fail if pathname is not a directory.
Definition: SCOREP_PublicTypes.h:700
SCOREP_RegionType
specifies a Region
Definition: SCOREP_PublicTypes.h:486
Definition: SCOREP_PublicTypes.h:185
uint32_t SCOREP_LineNo
Definition: SCOREP_PublicTypes.h:59
Definition: SCOREP_PublicTypes.h:622
Definition: SCOREP_PublicTypes.h:174
The I/O operation was performed in a non-blocking mode.
Definition: SCOREP_PublicTypes.h:806
Definition: SCOREP_PublicTypes.h:178
Definition: SCOREP_PublicTypes.h:376
Gives the advice that no reposition will happen on this I/O handle. E.g., no seek operation or simila...
Definition: SCOREP_PublicTypes.h:718
Definition: SCOREP_PublicTypes.h:899
Definition: SCOREP_PublicTypes.h:176
struct SCOREP_Task * SCOREP_TaskHandle
Definition: SCOREP_PublicTypes.h:156
No flag is set.
Definition: SCOREP_PublicTypes.h:694
SCOREP_IoOperationMode
Definition: SCOREP_PublicTypes.h:783
If the file does not exist, it will be created.
Definition: SCOREP_PublicTypes.h:696
SCOREP_CommunicatorFlag
Definition: SCOREP_PublicTypes.h:906
Definition: SCOREP_PublicTypes.h:208
Delete the file when closing the {IoHandle}.
Definition: SCOREP_PublicTypes.h:758
SCOREP_LockType
Definition: SCOREP_PublicTypes.h:214
Definition: SCOREP_PublicTypes.h:182
Definition: SCOREP_PublicTypes.h:374
Write operation.
Definition: SCOREP_PublicTypes.h:788
Ensure that the file size can be represented by a 64-bit datatype.
Definition: SCOREP_PublicTypes.h:714
Definition: SCOREP_PublicTypes.h:642
Definition: SCOREP_PublicTypes.h:363
uint64_t SCOREP_MpiMessageId
Definition: SCOREP_PublicTypes.h:242
Definition: SCOREP_PublicTypes.h:218
Definition: SCOREP_PublicTypes.h:896
There will be communicator event/destroy events.
Definition: SCOREP_PublicTypes.h:911
Definition: SCOREP_PublicTypes.h:771
Definition: SCOREP_PublicTypes.h:769
SCOREP_AnyHandle SCOREP_SourceFileHandle
Definition: SCOREP_PublicTypes.h:92
Definition: SCOREP_PublicTypes.h:775
Definition: SCOREP_PublicTypes.h:175
Definition: SCOREP_PublicTypes.h:222
Create an unnamed temporary file.
Definition: SCOREP_PublicTypes.h:712
SCOREP_SamplingSetClass
Class of locations which recorded a sampling set.
Definition: SCOREP_PublicTypes.h:605
Synchronization/flush operation (request and completion).
Definition: SCOREP_PublicTypes.h:790
Definition: SCOREP_PublicTypes.h:166
SCOREP_AnyHandle SCOREP_ParadigmHandle
Definition: SCOREP_PublicTypes.h:141
Definition: SCOREP_PublicTypes.h:224
uint32_t SCOREP_Allocator_MovableMemory
Definition: SCOREP_PublicTypes.h:74
SCOREP_Allocator_MovableMemory SCOREP_AnyHandle
Definition: SCOREP_PublicTypes.h:86
Definition: SCOREP_PublicTypes.h:306
Unspecified access mode.
Definition: SCOREP_PublicTypes.h:675
Definition: SCOREP_PublicTypes.h:172
SCOREP_AnyHandle SCOREP_MetricHandle
Definition: SCOREP_PublicTypes.h:104
Search-only access.
Definition: SCOREP_PublicTypes.h:685
Definition: SCOREP_PublicTypes.h:378
No special semantics.
Definition: SCOREP_PublicTypes.h:802
Enable close-on-exec flag.
Definition: SCOREP_PublicTypes.h:736
Definition: SCOREP_PublicTypes.h:186
SCOREP_RmaSyncLevel
specifies a RMA synchronization level, used by RMA records to be passed to SCOREP_Rma*() functions...
Definition: SCOREP_PublicTypes.h:553
SCOREP_Ipc_Datatype
specifies an inter process communication data types
Definition: SCOREP_PublicTypes.h:844
Definition: SCOREP_PublicTypes.h:181
Definition: SCOREP_PublicTypes.h:184
Definition: SCOREP_PublicTypes.h:177
There will be RMA window event/destroy events.
Definition: SCOREP_PublicTypes.h:923
SCOREP_ParadigmClass
defines classes of paradigms that are monitored Types:
Definition: SCOREP_PublicTypes.h:298
Definition: SCOREP_PublicTypes.h:608
Definition: SCOREP_PublicTypes.h:173
SCOREP_RmaWindowFlag
Definition: SCOREP_PublicTypes.h:918
Definition: SCOREP_PublicTypes.h:171
Definition: SCOREP_PublicTypes.h:767
Definition: SCOREP_PublicTypes.h:647
Truncate file to length 0 if possible.
Definition: SCOREP_PublicTypes.h:698
Definition: SCOREP_PublicTypes.h:165
Definition: SCOREP_PublicTypes.h:375
No flag is set.
Definition: SCOREP_PublicTypes.h:734
Definition: SCOREP_PublicTypes.h:609
Definition: SCOREP_PublicTypes.h:620
Definition: SCOREP_PublicTypes.h:628
SCOREP_IoSeekOption
Definition: SCOREP_PublicTypes.h:764
Definition: SCOREP_PublicTypes.h:607
Write operations on the file will complete according to the requirements of synchronized I/O file int...
Definition: SCOREP_PublicTypes.h:748
Definition: SCOREP_PublicTypes.h:639
Enable signal-driven I/O.
Definition: SCOREP_PublicTypes.h:744
Definition: SCOREP_PublicTypes.h:626
SCOREP_IoAccessMode
Definition: SCOREP_PublicTypes.h:672
SCOREP_Ipc_Operation
specifies an inter process communication operation for reduce function
Definition: SCOREP_PublicTypes.h:872
I/O operations (including the creation) will fail if they would block the issuing process...
Definition: SCOREP_PublicTypes.h:742
SCOREP_IoStatusFlag
Definition: SCOREP_PublicTypes.h:731
Definition: SCOREP_PublicTypes.h:624
Read-only access.
Definition: SCOREP_PublicTypes.h:677
File is only a location in the filesystem tree and is not suitable for reading and writing...
Definition: SCOREP_PublicTypes.h:710
SCOREP_IoParadigmType
Definition: SCOREP_PublicTypes.h:658
SCOREP_Substrates_RequirementFlag
Definition: SCOREP_PublicTypes.h:893
SCOREP_AnyHandle SCOREP_SamplingSetHandle
Definition: SCOREP_PublicTypes.h:117
Definition: SCOREP_PublicTypes.h:777
#define SCOREP_LOCATION_TYPES
Definition: SCOREP_PublicTypes.h:195
Read-write access.
Definition: SCOREP_PublicTypes.h:681
The I/O operation was performed collectively over the communicator of the referenced {IoHandle} handl...
Definition: SCOREP_PublicTypes.h:809
Ensure that this call creates the file.
Definition: SCOREP_PublicTypes.h:702
Instruct I/O operations to reduce caching effects, e.g., direct file I/O.
Definition: SCOREP_PublicTypes.h:754
int SCOREP_MpiRank
Definition: SCOREP_PublicTypes.h:230
SCOREP_IoCreationFlag
Definition: SCOREP_PublicTypes.h:691
Definition: SCOREP_PublicTypes.h:532
uint64_t SCOREP_MpiRequestId
Definition: SCOREP_PublicTypes.h:236
Definition: SCOREP_PublicTypes.h:895
Definition: SCOREP_PublicTypes.h:180
Definition: SCOREP_PublicTypes.h:164
Definition: SCOREP_PublicTypes.h:167
SCOREP_IoOperationFlag
Definition: SCOREP_PublicTypes.h:799
SCOREP_CollectiveType
Types to specify the used collectives in calls to SCOREP_MpiCollectiveBegin and SCOREP_RmaCollectiveB...
Definition: SCOREP_PublicTypes.h:162
int64_t SCOREP_ExitStatus
Definition: SCOREP_PublicTypes.h:45
Write-only access.
Definition: SCOREP_PublicTypes.h:679
Definition: SCOREP_PublicTypes.h:645
Gives the advice that this will be the only active {IoHandle} of the {IoParadigmType} which will oper...
Definition: SCOREP_PublicTypes.h:724
If pathname is a symbolic link, then the open operation will fail.
Definition: SCOREP_PublicTypes.h:707
Read operation.
Definition: SCOREP_PublicTypes.h:786
Definition: SCOREP_PublicTypes.h:169
Definition: SCOREP_PublicTypes.h:503
File is a terminal device and should not be promoted to a controlling terminal, if none existed befor...
Definition: SCOREP_PublicTypes.h:705
SCOREP_MetricScope
Types to be used in defining the scope of a scoped sampling set.
Definition: SCOREP_PublicTypes.h:617
Definition: SCOREP_PublicTypes.h:773
SCOREP_RmaSyncType
Type of direct RMA synchronization call.
Definition: SCOREP_PublicTypes.h:526
Definition: SCOREP_PublicTypes.h:897
The I/O operation was performed in a non-collective mode. (default)
Definition: SCOREP_PublicTypes.h:811
The I/O operation was performed in a blocking mode (default).
Definition: SCOREP_PublicTypes.h:804
SCOREP_ParadigmType
defines paradigms that are be monitored
Definition: SCOREP_PublicTypes.h:355
SCOREP_ParameterType
defines types to be used in defining a parameter for parameter based profiling (SCOREP_Definitions_Ne...
Definition: SCOREP_PublicTypes.h:372
Definition: SCOREP_PublicTypes.h:179
Definition: SCOREP_PublicTypes.h:168
SCOREP_MetricOccurrence
Types to be used in defining the occurrence of a sampling set.
Definition: SCOREP_PublicTypes.h:636
SCOREP_LocationType
Definition: SCOREP_PublicTypes.h:201
No flag is set.
Definition: SCOREP_PublicTypes.h:921