3.1-READEX_BETA (revision 13238M)
SCOREP_PublicTypes.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Score-P software (http://www.score-p.org)
3  *
4  * Copyright (c) 2009-2011,
5  * RWTH Aachen University, Germany
6  *
7  * Copyright (c) 2009-2011,
8  * Gesellschaft fuer numerische Simulation mbH Braunschweig, Germany
9  *
10  * Copyright (c) 2009-2011,
11  * Technische Universitaet Dresden, Germany
12  *
13  * Copyright (c) 2009-2011,
14  * University of Oregon, Eugene, USA
15  *
16  * Copyright (c) 2009-2011,
17  * Forschungszentrum Juelich GmbH, Germany
18  *
19  * Copyright (c) 2009-2011,
20  * German Research School for Simulation Sciences GmbH, Juelich/Aachen, Germany
21  *
22  * Copyright (c) 2009-2011,
23  * Technische Universitaet Muenchen, Germany
24  *
25  * This software may be modified and distributed under the terms of
26  * a BSD-style license. See the COPYING file in the package base
27  * directory for details.
28  *
29  */
30 
31 
38 #ifndef SCOREP_PUBLICTYPES_H
39 #define SCOREP_PUBLICTYPES_H
40 
41 #include <stdint.h>
42 
46 
51 typedef uint32_t SCOREP_LineNo;
52 
53 
54 
59 #define SCOREP_INVALID_LINE_NO 0
60 
67 
73 #define SCOREP_MOVABLE_NULL 0
74 
79 
85 
90 #define SCOREP_INVALID_SOURCE_FILE SCOREP_MOVABLE_NULL
91 
97 
102 #define SCOREP_INVALID_METRIC SCOREP_MOVABLE_NULL
103 
104 
110 
114 #define SCOREP_INVALID_SAMPLING_SET SCOREP_MOVABLE_NULL
115 
116 
122 
126 #define SCOREP_INVALID_REGION SCOREP_MOVABLE_NULL
127 
128 
134 
138 #define SCOREP_INVALID_PARADIGM SCOREP_MOVABLE_NULL
139 
140 
141 
145 typedef struct SCOREP_Task* SCOREP_TaskHandle;
146 
152 {
177 
178 
179 
184 #define SCOREP_LOCATION_TYPES \
185  SCOREP_LOCATION_TYPE( CPU_THREAD, "CPU thread" ) \
186  SCOREP_LOCATION_TYPE( GPU, "GPU" ) \
187  SCOREP_LOCATION_TYPE( METRIC, "metric location" ) \
188 
189 
191 {
192  #define SCOREP_LOCATION_TYPE( NAME, name_string ) SCOREP_LOCATION_TYPE_ ## NAME,
194  #undef SCOREP_LOCATION_TYPE
195 
196  SCOREP_NUMBER_OF_LOCATION_TYPES,
199 
203 typedef enum SCOREP_LockType
204 {
212 
215 
219 typedef int SCOREP_MpiRank;
220 
221 
225 typedef uint64_t SCOREP_MpiRequestId;
226 
227 
232 #define SCOREP_INVALID_ROOT_RANK -1
233 
234 
252 #define SCOREP_PARADIGM_CLASSES \
253  SCOREP_PARADIGM_CLASS( MPP, "multi-process", PROCESS ) \
254  SCOREP_PARADIGM_CLASS( THREAD_FORK_JOIN, "fork/join", THREAD_FORK_JOIN ) \
255  SCOREP_PARADIGM_CLASS( THREAD_CREATE_WAIT, "create/wait", THREAD_CREATE_WAIT ) \
256  SCOREP_PARADIGM_CLASS( ACCELERATOR, "accelerator", ACCELERATOR )
257 
258 
260 {
261 #define SCOREP_PARADIGM_CLASS( NAME, name, OTF2_NAME ) \
262  SCOREP_PARADIGM_CLASS_ ## NAME,
263  SCOREP_PARADIGM_CLASSES
264 
265 #undef SCOREP_PARADIGM_CLASS
266 
269 
270 
292 #define SCOREP_PARADIGMS \
293  SCOREP_PARADIGM( MEASUREMENT, "measurement", MEASUREMENT_SYSTEM ) \
294  SCOREP_PARADIGM( USER, "user", USER ) \
295  SCOREP_PARADIGM( COMPILER, "compiler", COMPILER ) \
296  SCOREP_PARADIGM( SAMPLING, "sampling", SAMPLING ) \
297  SCOREP_PARADIGM( MEMORY, "memory", NONE ) \
298  SCOREP_PARADIGM( MPI, "mpi", MPI ) \
299  SCOREP_PARADIGM( SHMEM, "shmem", SHMEM ) \
300  SCOREP_PARADIGM( OPENMP, "openmp", OPENMP ) \
301  SCOREP_PARADIGM( PTHREAD, "pthread", PTHREAD ) \
302  SCOREP_PARADIGM( CUDA, "cuda", CUDA ) \
303  SCOREP_PARADIGM( OPENCL, "opencl", OPENCL ) \
304  SCOREP_PARADIGM( OPENACC, "openacc", OPENACC )
305 
306 
308 {
309 #define SCOREP_PARADIGM( NAME, name_str, OTF2_NAME ) \
310  SCOREP_PARADIGM_ ## NAME,
311  SCOREP_PARADIGMS
312 
313 #undef SCOREP_PARADIGM
314 
317 
325 {
332 
333 
390 #define SCOREP_REGION_TYPES \
391  SCOREP_REGION_TYPE( COLL_ONE2ALL, "one2all" ) \
392  SCOREP_REGION_TYPE( COLL_ALL2ONE, "all2one" ) \
393  SCOREP_REGION_TYPE( COLL_ALL2ALL, "all2all" ) \
394  SCOREP_REGION_TYPE( COLL_OTHER, "other collective" ) \
395  SCOREP_REGION_TYPE( POINT2POINT, "point2point" ) \
396  SCOREP_REGION_TYPE( PARALLEL, "parallel" ) \
397  SCOREP_REGION_TYPE( SECTIONS, "sections" ) \
398  SCOREP_REGION_TYPE( SECTION, "section" ) \
399  SCOREP_REGION_TYPE( WORKSHARE, "workshare" ) \
400  SCOREP_REGION_TYPE( SINGLE, "single" ) \
401  SCOREP_REGION_TYPE( MASTER, "master" ) \
402  SCOREP_REGION_TYPE( CRITICAL, "critical" ) \
403  SCOREP_REGION_TYPE( ATOMIC, "atomic" ) \
404  SCOREP_REGION_TYPE( BARRIER, "barrier" ) \
405  SCOREP_REGION_TYPE( IMPLICIT_BARRIER, "implicit barrier" ) \
406  SCOREP_REGION_TYPE( FLUSH, "flush" ) \
407  SCOREP_REGION_TYPE( CRITICAL_SBLOCK, "critical sblock" ) \
408  SCOREP_REGION_TYPE( SINGLE_SBLOCK, "single sblock" ) \
409  SCOREP_REGION_TYPE( WRAPPER, "wrapper" ) \
410  SCOREP_REGION_TYPE( TASK, "task" ) \
411  SCOREP_REGION_TYPE( TASK_UNTIED, "untied task" ) \
412  SCOREP_REGION_TYPE( TASK_WAIT, "taskwait" ) \
413  SCOREP_REGION_TYPE( TASK_CREATE, "task create" ) \
414  SCOREP_REGION_TYPE( ORDERED, "ordered" ) \
415  SCOREP_REGION_TYPE( ORDERED_SBLOCK, "ordered sblock" ) \
416  SCOREP_REGION_TYPE( ARTIFICIAL, "artificial" ) \
417  SCOREP_REGION_TYPE( RMA, "rma" ) \
418  SCOREP_REGION_TYPE( THREAD_CREATE, "thread create" ) \
419  SCOREP_REGION_TYPE( THREAD_WAIT, "thread wait" ) \
420  SCOREP_REGION_TYPE( ALLOCATE, "allocate" ) \
421  SCOREP_REGION_TYPE( DEALLOCATE, "deallocate" ) \
422  SCOREP_REGION_TYPE( REALLOCATE, "reallocate" )
423 
424 
425 #define SCOREP_REGION_TYPE( NAME, name_str ) \
426  SCOREP_REGION_ ## NAME,
427 
428 typedef enum SCOREP_RegionType
429 {
430  SCOREP_REGION_UNKNOWN = 0,
431  SCOREP_REGION_FUNCTION,
432  SCOREP_REGION_LOOP,
433  SCOREP_REGION_USER,
434  SCOREP_REGION_CODE,
435 
436  SCOREP_REGION_PHASE,
437  SCOREP_REGION_DYNAMIC,
438  SCOREP_REGION_DYNAMIC_PHASE,
439  SCOREP_REGION_DYNAMIC_LOOP,
440  SCOREP_REGION_DYNAMIC_FUNCTION,
441  SCOREP_REGION_DYNAMIC_LOOP_PHASE,
442 
443  SCOREP_REGION_TYPES
444 
447 
448 #undef SCOREP_REGION_TYPE
449 
450 
451 
463 #define SCOREP_RMA_SYNC_TYPES \
464  SCOREP_RMA_SYNC_TYPE( MEMORY, memory, "memory" ) \
465  SCOREP_RMA_SYNC_TYPE( NOTIFY_IN, notify_in, "notify in" ) \
466  SCOREP_RMA_SYNC_TYPE( NOTIFY_OUT, notify_out, "notify out" )
467 
468 typedef enum SCOREP_RmaSyncType
469 {
470 #define SCOREP_RMA_SYNC_TYPE( upper, lower, name ) SCOREP_RMA_SYNC_TYPE_ ## upper,
471  SCOREP_RMA_SYNC_TYPES
472  #undef SCOREP_RMA_SYNC_TYPE
473 
476 
477 
478 
490 #define SCOREP_RMA_SYNC_LEVELS \
491  SCOREP_RMA_SYNC_LEVEL( NONE, none, "none", 0 ) \
492  SCOREP_RMA_SYNC_LEVEL( PROCESS, process, "process", 1 << 0 ) \
493  SCOREP_RMA_SYNC_LEVEL( MEMORY, memory, "memory", 1 << 1 )
494 
496 {
497 #define SCOREP_RMA_SYNC_LEVEL( upper, lower, name, value ) \
498  SCOREP_RMA_SYNC_LEVEL_ ## upper = value,
499 
500  SCOREP_RMA_SYNC_LEVELS
501 #undef SCOREP_RMA_SYNC_LEVEL
503 
504 
522 #define SCOREP_RMA_ATOMIC_TYPES \
523  SCOREP_RMA_ATOMIC_TYPE( ACCUMULATE, accumulate, "accumulate" ) \
524  SCOREP_RMA_ATOMIC_TYPE( INCREMENT, increment, "increment" ) \
525  SCOREP_RMA_ATOMIC_TYPE( TEST_AND_SET, test_and_set, "test and set" ) \
526  SCOREP_RMA_ATOMIC_TYPE( COMPARE_AND_SWAP, compare_and_swap, "compare and swap" ) \
527  SCOREP_RMA_ATOMIC_TYPE( SWAP, swap, "swap" ) \
528  SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_ADD, fetch_and_add, "fetch and add" ) \
529  SCOREP_RMA_ATOMIC_TYPE( FETCH_AND_INCREMENT, fetch_and_increment, "fetch and increment" ) \
530  SCOREP_RMA_ATOMIC_TYPE( ADD, add, "add" )
531 
533 {
534 #define SCOREP_RMA_ATOMIC_TYPE( upper, lower, name ) SCOREP_RMA_ATOMIC_TYPE_ ## upper,
535  SCOREP_RMA_ATOMIC_TYPES
536  #undef SCOREP_RMA_ATOMIC_TYPE
537 
538  SCOREP_INVALID_RMA_ATOMIC_TYPE
540 
541 
547 {
552 
558 typedef enum SCOREP_MetricScope
559 {
568 
571 
578 {
587 
590 
591 
609 #define SCOREP_IPC_DATATYPES \
610  SCOREP_IPC_DATATYPE( BYTE ) \
611  SCOREP_IPC_DATATYPE( CHAR ) \
612  SCOREP_IPC_DATATYPE( UNSIGNED_CHAR ) \
613  SCOREP_IPC_DATATYPE( INT ) \
614  SCOREP_IPC_DATATYPE( UNSIGNED ) \
615  SCOREP_IPC_DATATYPE( INT32_T ) \
616  SCOREP_IPC_DATATYPE( UINT32_T ) \
617  SCOREP_IPC_DATATYPE( INT64_T ) \
618  SCOREP_IPC_DATATYPE( UINT64_T ) \
619  SCOREP_IPC_DATATYPE( DOUBLE )
620 
622 {
623 #define SCOREP_IPC_DATATYPE( datatype ) \
624  SCOREP_IPC_ ## datatype,
625  SCOREP_IPC_DATATYPES
626 #undef SCOREP_IPC_DATATYPE
627  SCOREP_IPC_NUMBER_OF_DATATYPES
629 
642 #define SCOREP_IPC_OPERATIONS \
643  SCOREP_IPC_OPERATION( BAND ) \
644  SCOREP_IPC_OPERATION( BOR ) \
645  SCOREP_IPC_OPERATION( MIN ) \
646  SCOREP_IPC_OPERATION( MAX ) \
647  SCOREP_IPC_OPERATION( SUM )
648 
650 {
651 #define SCOREP_IPC_OPERATION( op ) \
652  SCOREP_IPC_ ## op,
653  SCOREP_IPC_OPERATIONS
654 #undef SCOREP_IPC_OPERATION
655  SCOREP_IPC_NUMBER_OF_OPERATIONS
657 
658 
669 {
675 
678 #endif /* SCOREP_PUBLICTYPES_H */
Definition: SCOREP_PublicTypes.h:569
Definition: SCOREP_PublicTypes.h:588
SCOREP_AnyHandle SCOREP_SamplingSetHandle
Definition: SCOREP_PublicTypes.h:109
struct SCOREP_Task * SCOREP_TaskHandle
Definition: SCOREP_PublicTypes.h:145
#define SCOREP_LOCATION_TYPES
Definition: SCOREP_PublicTypes.h:184
Definition: SCOREP_PublicTypes.h:171
Definition: SCOREP_PublicTypes.h:580
Definition: SCOREP_PublicTypes.h:207
Definition: SCOREP_PublicTypes.h:154
Definition: SCOREP_PublicTypes.h:213
SCOREP_AnyHandle SCOREP_SourceFileHandle
Definition: SCOREP_PublicTypes.h:84
Definition: SCOREP_PublicTypes.h:157
SCOREP_AnyHandle SCOREP_MetricHandle
Definition: SCOREP_PublicTypes.h:96
SCOREP_CollectiveType
Types to specify the used collectives in calls to SCOREP_MpiCollectiveBegin and SCOREP_RmaCollectiveB...
Definition: SCOREP_PublicTypes.h:151
Definition: SCOREP_PublicTypes.h:169
Definition: SCOREP_PublicTypes.h:586
Definition: SCOREP_PublicTypes.h:549
SCOREP_RmaSyncType
Type of direct RMA synchronization call.
Definition: SCOREP_PublicTypes.h:468
Definition: SCOREP_PublicTypes.h:168
SCOREP_Substrates_RequirementFlag
Definition: SCOREP_PublicTypes.h:668
int SCOREP_MpiRank
Definition: SCOREP_PublicTypes.h:219
SCOREP_RmaSyncLevel
specifies a RMA synchronization level, used by RMA records to be passed to SCOREP_Rma*() functions...
Definition: SCOREP_PublicTypes.h:495
SCOREP_AnyHandle SCOREP_ParadigmHandle
Definition: SCOREP_PublicTypes.h:133
Definition: SCOREP_PublicTypes.h:330
SCOREP_ParadigmType
defines paradigms that are be monitored
Definition: SCOREP_PublicTypes.h:307
Definition: SCOREP_PublicTypes.h:174
Definition: SCOREP_PublicTypes.h:156
Definition: SCOREP_PublicTypes.h:170
SCOREP_LockType
Definition: SCOREP_PublicTypes.h:203
Definition: SCOREP_PublicTypes.h:165
Definition: SCOREP_PublicTypes.h:565
Definition: SCOREP_PublicTypes.h:162
Definition: SCOREP_PublicTypes.h:197
Definition: SCOREP_PublicTypes.h:267
Definition: SCOREP_PublicTypes.h:671
Definition: SCOREP_PublicTypes.h:211
Definition: SCOREP_PublicTypes.h:550
Definition: SCOREP_PublicTypes.h:172
Definition: SCOREP_PublicTypes.h:164
Definition: SCOREP_PublicTypes.h:327
Definition: SCOREP_PublicTypes.h:173
Definition: SCOREP_PublicTypes.h:445
uint32_t SCOREP_LineNo
Definition: SCOREP_PublicTypes.h:51
Definition: SCOREP_PublicTypes.h:159
SCOREP_SamplingSetClass
Class of locations which recorded a sampling set.
Definition: SCOREP_PublicTypes.h:546
Definition: SCOREP_PublicTypes.h:166
Definition: SCOREP_PublicTypes.h:160
SCOREP_Ipc_Operation
specifies an inter process communication operation for reduce function
Definition: SCOREP_PublicTypes.h:649
Definition: SCOREP_PublicTypes.h:328
Definition: SCOREP_PublicTypes.h:673
SCOREP_Allocator_MovableMemory SCOREP_AnyHandle
Definition: SCOREP_PublicTypes.h:78
SCOREP_RmaAtomicType
specifies a RMA Atomic Operation Type.
Definition: SCOREP_PublicTypes.h:532
SCOREP_ParameterType
defines types to be used in defining a parameter for parameter based profiling (SCOREP_Definitions_Ne...
Definition: SCOREP_PublicTypes.h:324
Definition: SCOREP_PublicTypes.h:315
Definition: SCOREP_PublicTypes.h:167
Definition: SCOREP_PublicTypes.h:163
Definition: SCOREP_PublicTypes.h:561
Definition: SCOREP_PublicTypes.h:548
SCOREP_ParadigmClass
defines classes of paradigms that are monitored Types:
Definition: SCOREP_PublicTypes.h:259
Definition: SCOREP_PublicTypes.h:155
uint64_t SCOREP_MpiRequestId
Definition: SCOREP_PublicTypes.h:225
Definition: SCOREP_PublicTypes.h:583
SCOREP_Ipc_Datatype
specifies an inter process communication data types
Definition: SCOREP_PublicTypes.h:621
Definition: SCOREP_PublicTypes.h:175
uint32_t SCOREP_Allocator_MovableMemory
Definition: SCOREP_PublicTypes.h:66
Definition: SCOREP_PublicTypes.h:153
Definition: SCOREP_PublicTypes.h:326
Definition: SCOREP_PublicTypes.h:670
SCOREP_AnyHandle SCOREP_RegionHandle
Definition: SCOREP_PublicTypes.h:121
Definition: SCOREP_PublicTypes.h:563
SCOREP_MetricScope
Types to be used in defining the scope of a scoped sampling set.
Definition: SCOREP_PublicTypes.h:558
Definition: SCOREP_PublicTypes.h:474
SCOREP_LocationType
Definition: SCOREP_PublicTypes.h:190
Definition: SCOREP_PublicTypes.h:158
SCOREP_MetricOccurrence
Types to be used in defining the occurrence of a sampling set.
Definition: SCOREP_PublicTypes.h:577
Definition: SCOREP_PublicTypes.h:161
Definition: SCOREP_PublicTypes.h:567
SCOREP_RegionType
specifies a Region
Definition: SCOREP_PublicTypes.h:428