37#define MPI_PROC_NULL (-1)
40#define MPI_ANY_SOURCE (-2)
49#define MPI_ANY_TAG (-1)
52#define MPI_BOTTOM (void*)0
55#define MPI_IN_PLACE NULL
57#define MPI_BSEND_OVERHEAD 0
64#define MPI_ERR_BUFFER 1
65#define MPI_ERR_COUNT 2
71#define MPI_ERR_GROUP 8
73#define MPI_ERR_TOPOLOGY 10
74#define MPI_ERR_DIMS 11
76#define MPI_ERR_UNKNOWN 13
77#define MPI_ERR_TRUNCATE 14
78#define MPI_ERR_OTHER 15
79#define MPI_ERR_INTERN 16
80#define MPI_ERR_IN_STATUS 17
81#define MPI_ERR_PENDING 18
82#define MPI_ERR_INFO 19
83#define MPI_ERR_NO_MEM 20
84#define MPI_ERR_REQUEST 32
85#define MPI_ERR_KEYVAL 33
86#define MPI_ERR_INFO_KEY 34
87#define MPI_ERR_INFO_VALUE 35
88#define MPI_ERR_INFO_NOKEY 36
89#define MPI_ERR_VALUE_TOO_LARGE 37
91#define MPI_ERR_NAME 40
92#define MPI_ERR_PORT 41
93#define MPI_ERR_CONVERSION 42
94#define MPI_ERR_PROC_ABORTED 43
95#define MPI_ERR_SERVICE 44
96#define MPI_ERR_SPAWN 45
98#define MPI_ERR_FILE 64
100#define MPI_ERR_AMODE 66
101#define MPI_ERR_UNSUPPORTED_OPERATION 67
102#define MPI_ERR_UNSUPPORTED_DATAREP 68
103#define MPI_ERR_READ_ONLY 69
104#define MPI_ERR_ACCESS 70
105#define MPI_ERR_DUP_DATAREP 71
106#define MPI_ERR_NO_SUCH_FILE 72
107#define MPI_ERR_NOT_SAME 73
108#define MPI_ERR_BAD_FILE 74
109#define MPI_ERR_FILE_IN_USE 75
110#define MPI_ERR_NO_SPACE 76
111#define MPI_ERR_QUOTA 77
112#define MPI_ERR_FILE_EXISTS 78
114#define MPI_ERR_WIN 92
115#define MPI_ERR_BASE 93
116#define MPI_ERR_SIZE 94
117#define MPI_ERR_DISP 96
118#define MPI_ERR_LOCKTYPE 97
119#define MPI_ERR_ASSERT 98
120#define MPI_ERR_RMA_CONFLICT 99
121#define MPI_ERR_RMA_SYNC 100
122#define MPI_ERR_RMA_RANGE 101
123#define MPI_ERR_RMA_ATTACH 102
124#define MPI_ERR_RMA_SHARED 103
125#define MPI_ERR_RMA_FLAVOR 104
127#define MPI_ERR_SESSION 112
130#define MPI_T_ERR_INVALID 128
131#define MPI_T_ERR_MEMORY 129
132#define MPI_T_ERR_NOT_INITIALIZED 130
133#define MPI_T_ERR_CANNOT_INIT 131
134#define MPI_T_ERR_NOT_ACCESSIBLE 132
135#define MPI_T_ERR_INVALID_INDEX 133
136#define MPI_T_ERR_INVALID_NAME 134
137#define MPI_T_ERR_INVALID_HANDLE 135
138#define MPI_T_ERR_OUT_OF_HANDLES 136
139#define MPI_T_ERR_OUT_OF_SESSIONS 137
140#define MPI_T_ERR_INVALID_SESSION 138
141#define MPI_T_ERR_CVAR_SET_NOT_NOW 139
142#define MPI_T_ERR_CVAR_SET_NEVER 140
143#define MPI_T_ERR_PVAR_NO_STARTSTOP 141
144#define MPI_T_ERR_PVAR_NO_WRITE 142
145#define MPI_T_ERR_PVAR_NO_ATOMIC 143
146#define MPI_T_ERR_NOT_SUPPORTED 144
147#define MPI_T_ERR_INVALID_ITEM 145
149#define MPI_ERR_LASTCODE 160
155#define MPI_UNDEFINED (-2147483647)
156#define MPI_UNDEFINED_RANK MPI_UNDEFINED
161#define MPI_THREAD_SINGLE 0
162#define MPI_THREAD_FUNNELED 1
163#define MPI_THREAD_SERIALIZED 2
164#define MPI_THREAD_MULTIPLE 3
181#define MPI_INFO_NULL ((MPI_Info)0)
183#define MPI_INFO_ENV ((MPI_Info)1)
185#define _NM_MPI_INFO_OFFSET ((MPI_Info)2)
186#define MPI_MAX_INFO_KEY 255
187#define MPI_MAX_INFO_VAL 1024
193#define MPI_STATUS_SIZE 5
208#define MPI_STATUS_IGNORE (MPI_Status *)0
209#define MPI_STATUSES_IGNORE (MPI_Status *)0
222#define MPI_REQUEST_NULL ((MPI_Request)0)
224#define _NM_MPI_REQUEST_OFFSET 1
241#define MPI_MESSAGE_NULL ((MPI_Message)0)
249#define MPI_GROUP_NULL ((MPI_Group)0)
251#define MPI_GROUP_EMPTY ((MPI_Group)1)
253#define _NM_MPI_GROUP_OFFSET 2
259#define MPI_IDENT 0x01
261#define MPI_SIMILAR 0x02
263#define MPI_CONGRUENT 0x03
265#define MPI_UNEQUAL 0x04
273#define MPI_COMM_NULL ((MPI_Comm)0)
275#define MPI_COMM_WORLD ((MPI_Comm)1)
277#define MPI_COMM_SELF ((MPI_Comm)2)
279#define _NM_MPI_COMM_OFFSET 3
283#define MPI_COMM_TYPE_SHARED 1
286#define MPI_GRAPH 0x01
291#define MPI_DIST_GRAPH 0x03
298#define MPI_SESSION_NULL ((MPI_Session)0)
300#define NM_MPI_SESSION_WORLD ((MPI_Session)1)
302#define _NM_MPI_SESSION_OFFSET 2
304#define MPI_MAX_PSET_NAME_LEN 64
311#define MPI_DATATYPE_NULL ((MPI_Datatype)0)
313#define MPI_CHAR ((MPI_Datatype)1)
314#define MPI_UNSIGNED_CHAR ((MPI_Datatype)2)
315#define MPI_SIGNED_CHAR ((MPI_Datatype)3)
316#define MPI_BYTE ((MPI_Datatype)4)
317#define MPI_SHORT ((MPI_Datatype)5)
318#define MPI_UNSIGNED_SHORT ((MPI_Datatype)6)
319#define MPI_INT ((MPI_Datatype)7)
320#define MPI_UNSIGNED ((MPI_Datatype)8)
321#define MPI_LONG ((MPI_Datatype)9)
322#define MPI_UNSIGNED_LONG ((MPI_Datatype)10)
323#define MPI_FLOAT ((MPI_Datatype)11)
324#define MPI_DOUBLE ((MPI_Datatype)12)
325#define MPI_LONG_DOUBLE ((MPI_Datatype)13)
326#define MPI_LONG_LONG_INT ((MPI_Datatype)14)
327#define MPI_LONG_LONG MPI_LONG_LONG_INT
328#define MPI_UNSIGNED_LONG_LONG ((MPI_Datatype)15)
330#define MPI_CHARACTER ((MPI_Datatype)16)
331#define MPI_LOGICAL ((MPI_Datatype)17)
332#define MPI_REAL ((MPI_Datatype)18)
333#define MPI_REAL2 ((MPI_Datatype)19)
334#define MPI_REAL4 ((MPI_Datatype)20)
335#define MPI_REAL8 ((MPI_Datatype)21)
336#define MPI_REAL16 ((MPI_Datatype)22)
337#define MPI_DOUBLE_PRECISION ((MPI_Datatype)23)
338#define MPI_INTEGER ((MPI_Datatype)24)
339#define MPI_INTEGER1 ((MPI_Datatype)25)
340#define MPI_INTEGER2 ((MPI_Datatype)26)
341#define MPI_INTEGER4 ((MPI_Datatype)27)
342#define MPI_INTEGER8 ((MPI_Datatype)28)
343#define MPI_INTEGER16 ((MPI_Datatype)29)
344#define MPI_COMPLEX ((MPI_Datatype)30)
345#define MPI_COMPLEX4 ((MPI_Datatype)31)
346#define MPI_COMPLEX8 ((MPI_Datatype)32)
347#define MPI_COMPLEX16 ((MPI_Datatype)33)
348#define MPI_COMPLEX32 ((MPI_Datatype)34)
349#define MPI_DOUBLE_COMPLEX ((MPI_Datatype)35)
350#define MPI_PACKED ((MPI_Datatype)36)
352#define MPI_LONG_INT ((MPI_Datatype)37)
353#define MPI_SHORT_INT ((MPI_Datatype)38)
354#define MPI_FLOAT_INT ((MPI_Datatype)39)
355#define MPI_DOUBLE_INT ((MPI_Datatype)40)
356#define MPI_LONG_DOUBLE_INT ((MPI_Datatype)41)
358#define MPI_2INT ((MPI_Datatype)42)
359#define MPI_2INTEGER ((MPI_Datatype)43)
360#define MPI_2REAL ((MPI_Datatype)44)
361#define MPI_2DOUBLE_PRECISION ((MPI_Datatype)45)
363#define MPI_UB ((MPI_Datatype)46)
364#define MPI_LB ((MPI_Datatype)47)
366#define MPI_INT8_T ((MPI_Datatype)48)
367#define MPI_INT16_T ((MPI_Datatype)49)
368#define MPI_INT32_T ((MPI_Datatype)50)
369#define MPI_INT64_T ((MPI_Datatype)51)
370#define MPI_UINT8_T ((MPI_Datatype)52)
371#define MPI_UINT16_T ((MPI_Datatype)53)
372#define MPI_UINT32_T ((MPI_Datatype)54)
373#define MPI_UINT64_T ((MPI_Datatype)55)
374#define MPI_AINT ((MPI_Datatype)56)
375#define MPI_OFFSET ((MPI_Datatype)57)
376#define MPI_C_BOOL ((MPI_Datatype)58)
377#define MPI_C_COMPLEX MPI_C_FLOAT_COMPLEX
378#define MPI_C_FLOAT_COMPLEX ((MPI_Datatype)59)
379#define MPI_C_DOUBLE_COMPLEX ((MPI_Datatype)60)
380#define MPI_C_LONG_DOUBLE_COMPLEX ((MPI_Datatype)61)
381#define MPI_WCHAR ((MPI_Datatype)62)
383#define MPI_COUNT ((MPI_Datatype)63)
385#define MPI_CXX_BOOL MPI_DATATYPE_NULL
386#define MPI_CXX_FLOAT_COMPLEX MPI_DATATYPE_NULL
387#define MPI_CXX_DOUBLE_COMPLEX MPI_DATATYPE_NULL
388#define MPI_CXX_LONG_DOUBLE_COMPLEX MPI_DATATYPE_NULL
390#define _NM_MPI_DATATYPE_OFFSET 64
414#define MPI_ORDER_FORTRAN 2
418#define MPI_DISTRIBUTE_BLOCK 1
419#define MPI_DISTRIBUTE_CYCLIC 2
420#define MPI_DISTRIBUTE_NONE 3
421#define MPI_DISTRIBUTE_DFLT_DARG 4
428#define MPI_OP_NULL ((MPI_Op)0)
429#define MPI_MAX ((MPI_Op)1)
430#define MPI_MIN ((MPI_Op)2)
431#define MPI_SUM ((MPI_Op)3)
432#define MPI_PROD ((MPI_Op)4)
433#define MPI_LAND ((MPI_Op)5)
434#define MPI_BAND ((MPI_Op)6)
435#define MPI_LOR ((MPI_Op)7)
436#define MPI_BOR ((MPI_Op)8)
437#define MPI_LXOR ((MPI_Op)9)
438#define MPI_BXOR ((MPI_Op)10)
439#define MPI_MINLOC ((MPI_Op)11)
440#define MPI_MAXLOC ((MPI_Op)12)
441#define MPI_REPLACE ((MPI_Op)13)
442#define MPI_NO_OP ((MPI_Op)14)
443#define _NM_MPI_OP_OFFSET 15
446#define MPI_MAX_PROCESSOR_NAME 256
447#define MPI_MAX_ERROR_STRING 512
448#define MPI_MAX_NAME_STRING 256
449#define MPI_MAX_OBJECT_NAME 256
450#define MPI_MAX_LIBRARY_VERSION_STRING 256
456#define MPI_WIN_NULL ((MPI_Win)0)
457#define _NM_MPI_WIN_OFFSET ((MPI_Win)1)
461#define MPI_MODE_NO_ASSERT 0x00
462#define MPI_MODE_NOCHECK 0x01
463#define MPI_MODE_NOSTORE 0x02
464#define MPI_MODE_NOPUT 0x04
465#define MPI_MODE_NOPRECEDE 0x08
466#define MPI_MODE_NOSUCCEED 0x10
471#define MPI_WIN_FLAVOR_CREATE 0
472#define MPI_WIN_FLAVOR_ALLOCATE 1
473#define MPI_WIN_FLAVOR_DYNAMIC 2
474#define MPI_WIN_FLAVOR_SHARED 3
479#define MPI_WIN_BASE 0
480#define MPI_WIN_SIZE 1
481#define MPI_WIN_DISP_UNIT 2
482#define MPI_WIN_CREATE_FLAVOR 3
483#define MPI_WIN_MODEL 4
488#define MPI_WIN_SEPARATE 0
489#define MPI_WIN_UNIFIED 1
494#define MPI_LOCK_EXCLUSIVE 1
495#define MPI_LOCK_SHARED 2
503#define MPI_ERRHANDLER_NULL ((MPI_Errhandler)0)
505#define MPI_ERRORS_ARE_FATAL ((MPI_Errhandler)1)
506#define MPI_ERRORS_RETURN ((MPI_Errhandler)2)
507#define _NM_MPI_ERRHANDLER_OFFSET 3
525#define MPI_NULL_COPY_FN ((MPI_Copy_function*)0)
526#define MPI_DUP_FN ((MPI_Copy_function*)-1)
527#define MPI_NULL_DELETE_FN ((MPI_Delete_function*)0)
532#define MPI_COMM_NULL_COPY_FN ((MPI_Comm_copy_attr_function*)0)
534#define MPI_COMM_NULL_DELETE_FN ((MPI_Comm_delete_attr_function*)0)
536#define MPI_COMM_DUP_FN ((MPI_Comm_copy_attr_function*)-1)
543#define MPI_WIN_NULL_COPY_FN ((MPI_Win_copy_attr_function*)0)
544#define MPI_TYPE_NULL_COPY_FN ((MPI_Type_copy_attr_function*)0)
546#define MPI_WIN_NULL_DELETE_FN ((MPI_Win_delete_attr_function*)0)
547#define MPI_TYPE_NULL_DELETE_FN ((MPI_Type_delete_attr_function*)0)
549#define MPI_WIN_DUP_FN ((MPI_Win_copy_attr_function*)-1)
550#define MPI_TYPE_DUP_FN ((MPI_Type_copy_attr_function*)-1)
552#define MPI_KEYVAL_INVALID 0
557#define MPI_WTIME_IS_GLOBAL 4
558#define MPI_UNIVERSE_SIZE 5
560#define MPI_LASTUSEDCODE 7
561#define _NM_MPI_ATTR_OFFSET 8
571#define MPI_T_ENUM_NULL ((MPI_T_enum)0)
575#define MPI_T_CVAR_HANDLE_NULL ((MPI_T_cvar_handle)0)
579#define MPI_T_PVAR_HANDLE_NULL ((MPI_T_pvar_handle)0)
580#define MPI_T_PVAR_ALL_HANDLES ((MPI_T_pvar_handle)-1)
584#define MPI_T_PVAR_SESSION_NULL ((MPI_T_pvar_session)0)
587#define MPI_T_VERBOSITY_USER_BASIC 1
588#define MPI_T_VERBOSITY_USER_DETAIL 2
589#define MPI_T_VERBOSITY_USER_ALL 3
590#define MPI_T_VERBOSITY_TUNER_BASIC 4
591#define MPI_T_VERBOSITY_TUNER_DETAIL 5
592#define MPI_T_VERBOSITY_TUNER_ALL 6
593#define MPI_T_VERBOSITY_MPIDEV_BASIC 7
594#define MPI_T_VERBOSITY_MPIDEV_DETAIL 8
595#define MPI_T_VERBOSITY_MPIDEV_ALL 9
598#define MPI_T_BIND_NO_OBJECT 0
599#define MPI_T_BIND_MPI_COMM 1
600#define MPI_T_BIND_MPI_DATATYPE 2
601#define MPI_T_BIND_MPI_ERRHANDLER 3
602#define MPI_T_BIND_MPI_FILE 4
603#define MPI_T_BIND_MPI_GROUP 5
604#define MPI_T_BIND_MPI_OP 6
605#define MPI_T_BIND_MPI_REQUEST 7
606#define MPI_T_BIND_MPI_WIN 8
607#define MPI_T_BIND_MPI_MESSAGE 9
608#define MPI_T_BIND_MPI_INFO 10
609#define MPI_T_BIND_MPI_SESSION 11
612#define MPI_T_SCOPE_CONSTANT 1
613#define MPI_T_SCOPE_READONLY 2
614#define MPI_T_SCOPE_LOCAL 3
615#define MPI_T_SCOPE_GROUP 4
616#define MPI_T_SCOPE_GROUP_EQ 5
617#define MPI_T_SCOPE_ALL 6
618#define MPI_T_SCOPE_ALL_EQ 7
622#define MPI_T_PVAR_CLASS_STATE 1
623#define MPI_T_PVAR_CLASS_LEVEL 2
624#define MPI_T_PVAR_CLASS_SIZE 3
625#define MPI_T_PVAR_CLASS_PERCENTAGE 4
626#define MPI_T_PVAR_CLASS_HIGHWATERMARK 5
627#define MPI_T_PVAR_CLASS_LOWWATERMARK 6
628#define MPI_T_PVAR_CLASS_COUNTER 7
629#define MPI_T_PVAR_CLASS_AGGREGATE 8
630#define MPI_T_PVAR_CLASS_TIMER 9
631#define MPI_T_PVAR_CLASS_GENERIC 10
644#if defined(NM_FORTRAN_SIZEOF_INTEGER_4)
645typedef int32_t MPI_Fint;
646#elif defined(NM_FORTRAN_SIZEOF_INTEGER_8)
647typedef int64_t MPI_Fint;
649#error undefined Fortran INTEGER size
655extern MPI_Fint*MPI_F_STATUS_IGNORE;
656extern MPI_Fint*MPI_F_STATUSES_IGNORE;
nm_mpi_status_t status
status of request
MPI_Comm_errhandler_function MPI_Comm_errhandler_fn
pre MPI-2.2 compatibility type
int MPI_Op
Operator handle.
int MPI_Grequest_free_function(void *extra_state)
int MPI_Request
Request handle.
int() MPI_Type_delete_attr_function(MPI_Datatype datatype, int type_keyval, void *attribute_val, void *extra_state)
int MPI_Grequest_cancel_function(void *extra_state, int complete)
void() MPI_Comm_errhandler_function(MPI_Comm *, int *,...)
int MPI_Group
Group handle.
int() MPI_Delete_function(MPI_Comm comm, int keyval, void *attribute_val, void *extra_state)
int MPI_Message
handle for matching probe
nm_mpi_type_combiner_t
Types of datatypes.
@ MPI_COMBINER_DUP
type is duplicated from another type
@ MPI_COMBINER_INDEXED
indexed type
@ MPI_COMBINER_STRUCT
structured type
@ MPI_COMBINER_RESIZED
type is resized from another type
@ MPI_COMBINER_HINDEXED_BLOCK
@ MPI_COMBINER_INDEXED_BLOCK
@ MPI_COMBINER_HVECTOR
vector with stride in bytes
@ MPI_COMBINER_NAMED
basic type built-in MPI
@ MPI_COMBINER_HINDEXED
indexed type, offset in bytes
@ MPI_COMBINER_CONTIGUOUS
contiguous array
@ MPI_COMBINER_VECTOR
vector with stride
nm_mpi_aint_t MPI_Aint
type that holds an address
int() MPI_Copy_function(MPI_Comm oldcomm, int keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag)
int MPI_Session
Session handle.
int MPI_Comm
Communicator handle.
MPI_Win_errhandler_function MPI_Win_errhandler_fn
pre MPI-2.2 compatibility type
void() MPI_Win_errhandler_function(MPI_Win *, int *,...)
int MPI_Win
Window handle.
intptr_t nm_mpi_aint_t
internal type for address
void MPI_Session_errhandler_function(MPI_Session *, int *error_code,...)
int MPI_Grequest_query_function(void *extra_state, MPI_Status *status)
int() MPI_Win_delete_attr_function(MPI_Win win, int win_keyval, void *attribute_val, void *extra_state)
int MPI_T_enum
an enumeration for MPI tool support
int() MPI_Type_copy_attr_function(MPI_Datatype oldtype, int type_keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag)
int64_t nm_mpi_count_t
internal type for counts
int MPI_Info
An info opaque object.
void() MPI_Handler_function(MPI_Comm *, int *,...)
int() MPI_Comm_copy_attr_function(MPI_Comm oldcomm, int comm_keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag)
int() MPI_Comm_delete_attr_function(MPI_Comm comm, int comm_keyval, void *attribute_val, void *extra_state)
nm_mpi_count_t MPI_Count
public type for counts
int() MPI_Win_copy_attr_function(MPI_Win oldwin, int win_keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag)
int MPI_Datatype
Datatype handle.
int MPI_SOURCE
field name mandatory by spec
int size
size of data received
int MPI_TAG
field name mandatory by spec
int cancelled
whether request was cancelled
int MPI_ERROR
field name mandatory by spec