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
344 #define SCOREP_PARADIGMS \
345 SCOREP_PARADIGM( MEASUREMENT, "measurement", MEASUREMENT_SYSTEM ) \
346 SCOREP_PARADIGM( USER, "user", USER ) \
347 SCOREP_PARADIGM( COMPILER, "compiler", COMPILER ) \
348 SCOREP_PARADIGM( SAMPLING, "sampling", SAMPLING ) \
349 SCOREP_PARADIGM( MEMORY, "memory", NONE ) \
350 SCOREP_PARADIGM( LIBWRAP, "libwrap", NONE ) \
351 SCOREP_PARADIGM( MPI, "mpi", MPI ) \
352 SCOREP_PARADIGM( SHMEM, "shmem", SHMEM ) \
353 SCOREP_PARADIGM( OPENMP, "openmp", OPENMP ) \
354 SCOREP_PARADIGM( PTHREAD, "pthread", PTHREAD ) \
355 SCOREP_PARADIGM( ORPHAN_THREAD, "orphan thread", UNKNOWN ) \
356 SCOREP_PARADIGM( CUDA, "cuda", CUDA ) \
357 SCOREP_PARADIGM( OPENCL, "opencl", OPENCL ) \
358 SCOREP_PARADIGM( OPENACC, "openacc", OPENACC ) \
359 SCOREP_PARADIGM( IO, "io", NONE ) \
360 SCOREP_PARADIGM( KOKKOS, "kokkos", KOKKOS ) \
361 SCOREP_PARADIGM( HIP, "hip", HIP ) \
362 SCOREP_PARADIGM( OPENMP_TARGET, "openmp target", OPENMP_TARGET )
366 #define SCOREP_PARADIGM( NAME, name_str, OTF2_NAME ) \
367 SCOREP_PARADIGM_ ## NAME,
370 #undef SCOREP_PARADIGM
451 #define SCOREP_REGION_TYPES \
452 SCOREP_REGION_TYPE( COLL_ONE2ALL, "one2all" ) \
453 SCOREP_REGION_TYPE( COLL_ALL2ONE, "all2one" ) \
454 SCOREP_REGION_TYPE( COLL_ALL2ALL, "all2all" ) \
455 SCOREP_REGION_TYPE( COLL_OTHER, "other collective" ) \
456 SCOREP_REGION_TYPE( POINT2POINT, "point2point" ) \
457 SCOREP_REGION_TYPE( PARALLEL, "parallel" ) \
458 SCOREP_REGION_TYPE( SECTIONS, "sections" ) \
459 SCOREP_REGION_TYPE( SECTION, "section" ) \
460 SCOREP_REGION_TYPE( WORKSHARE, "workshare" ) \
461 SCOREP_REGION_TYPE( SINGLE, "single" ) \
462 SCOREP_REGION_TYPE( MASTER, "master" ) \
463 SCOREP_REGION_TYPE( CRITICAL, "critical" ) \
464 SCOREP_REGION_TYPE( ATOMIC, "atomic" ) \
465 SCOREP_REGION_TYPE( BARRIER, "barrier" ) \
466 SCOREP_REGION_TYPE( IMPLICIT_BARRIER, "implicit barrier" ) \
467 SCOREP_REGION_TYPE( FLUSH, "flush" ) \
468 SCOREP_REGION_TYPE( CRITICAL_SBLOCK, "critical sblock" ) \
469 SCOREP_REGION_TYPE( SINGLE_SBLOCK, "single sblock" ) \
470 SCOREP_REGION_TYPE( WRAPPER, "wrapper" ) \
471 SCOREP_REGION_TYPE( TASK, "task" ) \
472 SCOREP_REGION_TYPE( TASK_UNTIED, "untied task" ) \
473 SCOREP_REGION_TYPE( TASK_WAIT, "taskwait" ) \
474 SCOREP_REGION_TYPE( TASK_CREATE, "task create" ) \
475 SCOREP_REGION_TYPE( ORDERED, "ordered" ) \
476 SCOREP_REGION_TYPE( ORDERED_SBLOCK, "ordered sblock" ) \
477 SCOREP_REGION_TYPE( ARTIFICIAL, "artificial" ) \
478 SCOREP_REGION_TYPE( RMA, "rma" ) \
479 SCOREP_REGION_TYPE( THREAD_CREATE, "thread create" ) \
480 SCOREP_REGION_TYPE( THREAD_WAIT, "thread wait" ) \
481 SCOREP_REGION_TYPE( ALLOCATE, "allocate" ) \
482 SCOREP_REGION_TYPE( DEALLOCATE, "deallocate" ) \
483 SCOREP_REGION_TYPE( REALLOCATE, "reallocate" ) \
484 SCOREP_REGION_TYPE( FILE_IO, "file io" ) \
485 SCOREP_REGION_TYPE( FILE_IO_METADATA, "file io metadata" ) \
486 SCOREP_REGION_TYPE( KERNEL_LAUNCH, "wrapper" ) \
487 SCOREP_REGION_TYPE( KERNEL, "kernel" ) \
488 SCOREP_REGION_TYPE( DATA_TRANSFER, "data transfer" )
491 #define SCOREP_REGION_TYPE( NAME, name_str ) \
492 SCOREP_REGION_ ## NAME,
496 SCOREP_REGION_UNKNOWN = 0,
497 SCOREP_REGION_FUNCTION,
503 SCOREP_REGION_DYNAMIC,
504 SCOREP_REGION_DYNAMIC_PHASE,
505 SCOREP_REGION_DYNAMIC_LOOP,
506 SCOREP_REGION_DYNAMIC_FUNCTION,
507 SCOREP_REGION_DYNAMIC_LOOP_PHASE,
514 #undef SCOREP_REGION_TYPE
529 #define SCOREP_RMA_SYNC_TYPES \
530 SCOREP_RMA_SYNC_TYPE( MEMORY, memory, "memory" ) \
531 SCOREP_RMA_SYNC_TYPE( NOTIFY_IN, notify_in, "notify in" ) \
532 SCOREP_RMA_SYNC_TYPE( NOTIFY_OUT, notify_out, "notify out" )
536 #define SCOREP_RMA_SYNC_TYPE( upper, lower, name ) SCOREP_RMA_SYNC_TYPE_ ## upper,
537 SCOREP_RMA_SYNC_TYPES
538 #undef SCOREP_RMA_SYNC_TYPE
556 #define SCOREP_RMA_SYNC_LEVELS \
557 SCOREP_RMA_SYNC_LEVEL( NONE, none, "none", 0 ) \
558 SCOREP_RMA_SYNC_LEVEL( PROCESS, process, "process", 1 << 0 ) \
559 SCOREP_RMA_SYNC_LEVEL( MEMORY, memory, "memory", 1 << 1 )
563 #define SCOREP_RMA_SYNC_LEVEL( upper, lower, name, value ) \
564 SCOREP_RMA_SYNC_LEVEL_ ## upper = value,
566 SCOREP_RMA_SYNC_LEVELS
567 #undef SCOREP_RMA_SYNC_LEVEL
588 #define SCOREP_RMA_ATOMIC_TYPES \
589 SCOREP_RMA_ATOMIC_TYPE( ACCUMULATE, accumulate, "accumulate" ) \
590 SCOREP_RMA_ATOMIC_TYPE( INCREMENT, increment, "increment" ) \
591 SCOREP_RMA_ATOMIC_TYPE( TEST_AND_SET, test_and_set, "test and set" ) \
592 SCOREP_RMA_ATOMIC_TYPE( COMPARE_AND_SWAP, compare_and_swap, "compare and swap" ) \
593 SCOREP_RMA_ATOMIC_TYPE( SWAP, swap, "swap" ) \
594 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_ADD, fetch_and_add, "fetch and add" ) \
595 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_INCREMENT, fetch_and_increment, "fetch and increment" ) \
596 SCOREP_RMA_ATOMIC_TYPE( ADD, add, "add" ) \
597 SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_ACCUMULATE, fetch_and_op, "fetch and accumulate with user-specified operator" )
601 #define SCOREP_RMA_ATOMIC_TYPE( upper, lower, name ) SCOREP_RMA_ATOMIC_TYPE_ ## upper,
602 SCOREP_RMA_ATOMIC_TYPES
603 #undef SCOREP_RMA_ATOMIC_TYPE
605 SCOREP_INVALID_RMA_ATOMIC_TYPE
658 #define SCOREP_IO_PARADIGMS \
659 SCOREP_IO_PARADIGM( POSIX, posix, "POSIX" ) \
660 SCOREP_IO_PARADIGM( ISOC, isoc, "ISOC" ) \
661 SCOREP_IO_PARADIGM( MPI, mpi, "MPI-IO" )
668 #define SCOREP_IO_PARADIGM( upper, lower, id_name ) SCOREP_IO_PARADIGM_ ## upper,
670 #undef SCOREP_IO_PARADIGM
671 SCOREP_INVALID_IO_PARADIGM_TYPE
675 #define SCOREP_NUM_IO_PARADIGMS SCOREP_INVALID_IO_PARADIGM_TYPE
840 #define SCOREP_IPC_DATATYPES \
841 SCOREP_IPC_DATATYPE( BYTE ) \
842 SCOREP_IPC_DATATYPE( CHAR ) \
843 SCOREP_IPC_DATATYPE( UNSIGNED_CHAR ) \
844 SCOREP_IPC_DATATYPE( INT ) \
845 SCOREP_IPC_DATATYPE( UNSIGNED ) \
846 SCOREP_IPC_DATATYPE( INT32_T ) \
847 SCOREP_IPC_DATATYPE( UINT32_T ) \
848 SCOREP_IPC_DATATYPE( INT64_T ) \
849 SCOREP_IPC_DATATYPE( UINT64_T ) \
850 SCOREP_IPC_DATATYPE( DOUBLE )
854 #define SCOREP_IPC_DATATYPE( datatype ) \
855 SCOREP_IPC_ ## datatype,
857 #undef SCOREP_IPC_DATATYPE
858 SCOREP_IPC_NUMBER_OF_DATATYPES
873 #define SCOREP_IPC_OPERATIONS \
874 SCOREP_IPC_OPERATION( BAND ) \
875 SCOREP_IPC_OPERATION( BOR ) \
876 SCOREP_IPC_OPERATION( MIN ) \
877 SCOREP_IPC_OPERATION( MAX ) \
878 SCOREP_IPC_OPERATION( SUM )
882 #define SCOREP_IPC_OPERATION( op ) \
884 SCOREP_IPC_OPERATIONS
885 #undef SCOREP_IPC_OPERATION
886 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:759
SCOREP_RmaAtomicType
specifies a RMA Atomic Operation Type.
Definition: SCOREP_PublicTypes.h:599
Read access to a file won't update its last access time.
Definition: SCOREP_PublicTypes.h:764
Execute-only access.
Definition: SCOREP_PublicTypes.h:691
Open file in append mode which means I/O write operations are automatically performed at the end of t...
Definition: SCOREP_PublicTypes.h:747
No flag is set.
Definition: SCOREP_PublicTypes.h:917
Open operation will fail if pathname is not a directory.
Definition: SCOREP_PublicTypes.h:708
SCOREP_RegionType
specifies a Region
Definition: SCOREP_PublicTypes.h:494
Definition: SCOREP_PublicTypes.h:204
uint32_t SCOREP_LineNo
Definition: SCOREP_PublicTypes.h:78
Definition: SCOREP_PublicTypes.h:630
Definition: SCOREP_PublicTypes.h:193
The I/O operation was performed in a non-blocking mode.
Definition: SCOREP_PublicTypes.h:814
Definition: SCOREP_PublicTypes.h:197
Definition: SCOREP_PublicTypes.h:385
Gives the advice that no reposition will happen on this I/O handle. E.g., no seek operation or simila...
Definition: SCOREP_PublicTypes.h:726
Definition: SCOREP_PublicTypes.h:907
Definition: SCOREP_PublicTypes.h:195
struct SCOREP_Task * SCOREP_TaskHandle
Definition: SCOREP_PublicTypes.h:175
No flag is set.
Definition: SCOREP_PublicTypes.h:702
SCOREP_IoOperationMode
Definition: SCOREP_PublicTypes.h:791
If the file does not exist, it will be created.
Definition: SCOREP_PublicTypes.h:704
SCOREP_CommunicatorFlag
Definition: SCOREP_PublicTypes.h:914
Definition: SCOREP_PublicTypes.h:227
Delete the file when closing the {IoHandle}.
Definition: SCOREP_PublicTypes.h:766
SCOREP_LockType
Definition: SCOREP_PublicTypes.h:233
Definition: SCOREP_PublicTypes.h:201
Definition: SCOREP_PublicTypes.h:383
Write operation.
Definition: SCOREP_PublicTypes.h:796
Ensure that the file size can be represented by a 64-bit datatype.
Definition: SCOREP_PublicTypes.h:722
Definition: SCOREP_PublicTypes.h:650
Definition: SCOREP_PublicTypes.h:372
Definition: SCOREP_PublicTypes.h:237
Definition: SCOREP_PublicTypes.h:904
There will be communicator event/destroy events.
Definition: SCOREP_PublicTypes.h:919
Definition: SCOREP_PublicTypes.h:779
Definition: SCOREP_PublicTypes.h:777
SCOREP_AnyHandle SCOREP_SourceFileHandle
Definition: SCOREP_PublicTypes.h:111
Definition: SCOREP_PublicTypes.h:783
Definition: SCOREP_PublicTypes.h:194
Definition: SCOREP_PublicTypes.h:241
Create an unnamed temporary file.
Definition: SCOREP_PublicTypes.h:720
SCOREP_SamplingSetClass
Class of locations which recorded a sampling set.
Definition: SCOREP_PublicTypes.h:613
Synchronization/flush operation (request and completion).
Definition: SCOREP_PublicTypes.h:798
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:683
Definition: SCOREP_PublicTypes.h:191
SCOREP_AnyHandle SCOREP_MetricHandle
Definition: SCOREP_PublicTypes.h:123
Search-only access.
Definition: SCOREP_PublicTypes.h:693
Definition: SCOREP_PublicTypes.h:387
No special semantics.
Definition: SCOREP_PublicTypes.h:810
Enable close-on-exec flag.
Definition: SCOREP_PublicTypes.h:744
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:561
SCOREP_Ipc_Datatype
specifies an inter process communication data types
Definition: SCOREP_PublicTypes.h:852
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:931
SCOREP_ParadigmClass
defines classes of paradigms that are monitored Types:
Definition: SCOREP_PublicTypes.h:307
Definition: SCOREP_PublicTypes.h:616
Definition: SCOREP_PublicTypes.h:192
SCOREP_RmaWindowFlag
Definition: SCOREP_PublicTypes.h:926
Definition: SCOREP_PublicTypes.h:190
Definition: SCOREP_PublicTypes.h:775
Definition: SCOREP_PublicTypes.h:655
Truncate file to length 0 if possible.
Definition: SCOREP_PublicTypes.h:706
Definition: SCOREP_PublicTypes.h:184
Definition: SCOREP_PublicTypes.h:384
No flag is set.
Definition: SCOREP_PublicTypes.h:742
Definition: SCOREP_PublicTypes.h:617
Definition: SCOREP_PublicTypes.h:628
Definition: SCOREP_PublicTypes.h:636
SCOREP_IoSeekOption
Definition: SCOREP_PublicTypes.h:772
Definition: SCOREP_PublicTypes.h:615
Write operations on the file will complete according to the requirements of synchronized I/O file int...
Definition: SCOREP_PublicTypes.h:756
Definition: SCOREP_PublicTypes.h:647
Enable signal-driven I/O.
Definition: SCOREP_PublicTypes.h:752
Definition: SCOREP_PublicTypes.h:634
SCOREP_IoAccessMode
Definition: SCOREP_PublicTypes.h:680
SCOREP_Ipc_Operation
specifies an inter process communication operation for reduce function
Definition: SCOREP_PublicTypes.h:880
I/O operations (including the creation) will fail if they would block the issuing process...
Definition: SCOREP_PublicTypes.h:750
SCOREP_IoStatusFlag
Definition: SCOREP_PublicTypes.h:739
Definition: SCOREP_PublicTypes.h:632
Read-only access.
Definition: SCOREP_PublicTypes.h:685
File is only a location in the filesystem tree and is not suitable for reading and writing...
Definition: SCOREP_PublicTypes.h:718
SCOREP_IoParadigmType
Definition: SCOREP_PublicTypes.h:666
SCOREP_Substrates_RequirementFlag
Definition: SCOREP_PublicTypes.h:901
SCOREP_AnyHandle SCOREP_SamplingSetHandle
Definition: SCOREP_PublicTypes.h:136
Definition: SCOREP_PublicTypes.h:785
#define SCOREP_LOCATION_TYPES
Definition: SCOREP_PublicTypes.h:214
Read-write access.
Definition: SCOREP_PublicTypes.h:689
The I/O operation was performed collectively over the communicator of the referenced {IoHandle} handl...
Definition: SCOREP_PublicTypes.h:817
Ensure that this call creates the file.
Definition: SCOREP_PublicTypes.h:710
Instruct I/O operations to reduce caching effects, e.g., direct file I/O.
Definition: SCOREP_PublicTypes.h:762
int SCOREP_MpiRank
Definition: SCOREP_PublicTypes.h:249
SCOREP_IoCreationFlag
Definition: SCOREP_PublicTypes.h:699
Definition: SCOREP_PublicTypes.h:540
uint64_t SCOREP_MpiRequestId
Definition: SCOREP_PublicTypes.h:255
Definition: SCOREP_PublicTypes.h:903
Definition: SCOREP_PublicTypes.h:199
Definition: SCOREP_PublicTypes.h:183
Definition: SCOREP_PublicTypes.h:186
SCOREP_IoOperationFlag
Definition: SCOREP_PublicTypes.h:807
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:687
Definition: SCOREP_PublicTypes.h:653
Gives the advice that this will be the only active {IoHandle} of the {IoParadigmType} which will oper...
Definition: SCOREP_PublicTypes.h:732
If pathname is a symbolic link, then the open operation will fail.
Definition: SCOREP_PublicTypes.h:715
Read operation.
Definition: SCOREP_PublicTypes.h:794
Definition: SCOREP_PublicTypes.h:188
Definition: SCOREP_PublicTypes.h:511
File is a terminal device and should not be promoted to a controlling terminal, if none existed befor...
Definition: SCOREP_PublicTypes.h:713
SCOREP_MetricScope
Types to be used in defining the scope of a scoped sampling set.
Definition: SCOREP_PublicTypes.h:625
Definition: SCOREP_PublicTypes.h:781
SCOREP_RmaSyncType
Type of direct RMA synchronization call.
Definition: SCOREP_PublicTypes.h:534
Definition: SCOREP_PublicTypes.h:905
The I/O operation was performed in a non-collective mode. (default)
Definition: SCOREP_PublicTypes.h:819
The I/O operation was performed in a blocking mode (default).
Definition: SCOREP_PublicTypes.h:812
SCOREP_ParadigmType
defines paradigms that are be monitored
Definition: SCOREP_PublicTypes.h:364
SCOREP_ParameterType
defines types to be used in defining a parameter for parameter based profiling (SCOREP_Definitions_Ne...
Definition: SCOREP_PublicTypes.h:381
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:644
SCOREP_LocationType
Definition: SCOREP_PublicTypes.h:220
No flag is set.
Definition: SCOREP_PublicTypes.h:929