NewMadeleine

Documentation

« back to PM2 home.
nm_mpi_types.h
Go to the documentation of this file.
1/*
2 * NewMadeleine
3 * Copyright (C) 2006-2026 (see AUTHORS file)
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 */
15
16
17#ifndef NM_MPI_TYPES_H
18#define NM_MPI_TYPES_H
19
20#include <stdint.h>
21#include <sys/types.h>
22
23#include <nm_config.h>
24
37#define MPI_PROC_NULL (-1)
38
40#define MPI_ANY_SOURCE (-2)
41
46#define MPI_ROOT (-3)
47
49#define MPI_ANY_TAG (-1)
50
52#define MPI_BOTTOM (void*)0
53
55#define MPI_IN_PLACE NULL
56
57#define MPI_BSEND_OVERHEAD 0
58
62#define MPI_SUCCESS 0
63/* base error codes, used as error class */
64#define MPI_ERR_BUFFER 1
65#define MPI_ERR_COUNT 2
66#define MPI_ERR_TYPE 3
67#define MPI_ERR_TAG 4
68#define MPI_ERR_COMM 5
69#define MPI_ERR_RANK 6
70#define MPI_ERR_ROOT 7
71#define MPI_ERR_GROUP 8
72#define MPI_ERR_OP 9
73#define MPI_ERR_TOPOLOGY 10
74#define MPI_ERR_DIMS 11
75#define MPI_ERR_ARG 12
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
90/* error code for dyn conns */
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
97/* error codes for MPI-IO */
98#define MPI_ERR_FILE 64
99#define MPI_ERR_IO 65
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
113/* error codes for MPI-RMA */
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
126/* sessions */
127#define MPI_ERR_SESSION 112
128/* MPI tool support */
129
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
150
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
168typedef intptr_t nm_mpi_aint_t;
171
173typedef int64_t nm_mpi_count_t;
176
180typedef int MPI_Info;
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
194
204
207
208#define MPI_STATUS_IGNORE (MPI_Status *)0
209#define MPI_STATUSES_IGNORE (MPI_Status *)0
217typedef int MPI_Request;
218
222#define MPI_REQUEST_NULL ((MPI_Request)0)
224#define _NM_MPI_REQUEST_OFFSET 1
225
232typedef int MPI_Grequest_cancel_function(void*extra_state, int complete);
238typedef int MPI_Message;
239
241#define MPI_MESSAGE_NULL ((MPI_Message)0)
247typedef int MPI_Group;
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
271typedef int MPI_Comm;
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
284
286#define MPI_GRAPH 0x01
287
289#define MPI_CART 0x02
290
291#define MPI_DIST_GRAPH 0x03
292
296typedef int MPI_Session;
298#define MPI_SESSION_NULL ((MPI_Session)0)
300#define NM_MPI_SESSION_WORLD ((MPI_Session)1)
302#define _NM_MPI_SESSION_OFFSET 2
303
304#define MPI_MAX_PSET_NAME_LEN 64
310typedef int MPI_Datatype;
311#define MPI_DATATYPE_NULL ((MPI_Datatype)0)
312/* C types */
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)
329/* FORTRAN types */
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)
351/* C struct types */
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)
357/* FORTRAN struct types*/
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)
362/* special types for bounds */
363#define MPI_UB ((MPI_Datatype)46)
364#define MPI_LB ((MPI_Datatype)47)
365/* MPI-2 C types */
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)
382/* MPI-3 MPI_Count */
383#define MPI_COUNT ((MPI_Datatype)63)
384/* unsupported C++ types- define to TYPE_NULL */
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
389/* offset for dynamically allocated datatypes */
390#define _NM_MPI_DATATYPE_OFFSET 64
410
413#define MPI_ORDER_C 1
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
427typedef int MPI_Op;
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
451
455typedef int MPI_Win;
456#define MPI_WIN_NULL ((MPI_Win)0)
457#define _NM_MPI_WIN_OFFSET ((MPI_Win)1)
458
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
502typedef int MPI_Errhandler;
503#define MPI_ERRHANDLER_NULL ((MPI_Errhandler)0)
504
505#define MPI_ERRORS_ARE_FATAL ((MPI_Errhandler)1)
506#define MPI_ERRORS_RETURN ((MPI_Errhandler)2)
507#define _NM_MPI_ERRHANDLER_OFFSET 3
508
509/* MPI-1 */
510typedef void (MPI_Handler_function)(MPI_Comm*, int*, ...);
511/* MPI-2 */
512typedef void (MPI_Comm_errhandler_function)(MPI_Comm*, int*, ...);
514typedef void (MPI_Win_errhandler_function)(MPI_Win*, int*, ...);
516/* MPI-4 */
517typedef void MPI_Session_errhandler_function(MPI_Session*, int*error_code, ...);
522/* MPI-1 */
523typedef int (MPI_Copy_function)(MPI_Comm oldcomm, int keyval, void*extra_state, void*attribute_val_in, void*attribute_val_out, int*flag);
524typedef int (MPI_Delete_function)(MPI_Comm comm, int keyval, void*attribute_val, void*extra_state);
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)
528/* MPI-2 */
529typedef 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);
530typedef int (MPI_Comm_delete_attr_function)(MPI_Comm comm, int comm_keyval, void*attribute_val, void*extra_state);
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)
537/* MPI-3 */
538typedef 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);
539typedef int (MPI_Win_delete_attr_function)(MPI_Win win, int win_keyval, void*attribute_val, void*extra_state);
540typedef 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);
541typedef int (MPI_Type_delete_attr_function)(MPI_Datatype datatype, int type_keyval, void*attribute_val, void*extra_state);
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)
551
552#define MPI_KEYVAL_INVALID 0
553
554#define MPI_TAG_UB 1
555#define MPI_HOST 2
556#define MPI_IO 3
557#define MPI_WTIME_IS_GLOBAL 4
558#define MPI_UNIVERSE_SIZE 5
559#define MPI_APPNUM 6
560#define MPI_LASTUSEDCODE 7
561#define _NM_MPI_ATTR_OFFSET 8
562
569typedef int MPI_T_enum;
570
571#define MPI_T_ENUM_NULL ((MPI_T_enum)0)
572
574
575#define MPI_T_CVAR_HANDLE_NULL ((MPI_T_cvar_handle)0)
576
578
579#define MPI_T_PVAR_HANDLE_NULL ((MPI_T_pvar_handle)0)
580#define MPI_T_PVAR_ALL_HANDLES ((MPI_T_pvar_handle)-1)
581
583
584#define MPI_T_PVAR_SESSION_NULL ((MPI_T_pvar_session)0)
585
586/* verbosity levels */
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
596
597/* MPI tool binding */
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
610
611/* scope for cvars */
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
619
620/* classes for pvars */
621/* warning, values must match enum nm_profile_class_e */
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
632
635/* ********************************************************* */
636/* ** FORTRAN support */
637
638#ifdef NMAD_FORTRAN
639
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;
648#else
649#error undefined Fortran INTEGER size
650#endif
651
652/* Those global variables are used to store values of predefined static variables(COMMON block) from fortran.
653 Their value is defined only between the calls to MPI_INIT and MPI_FINALIZE */
655extern MPI_Fint*MPI_F_STATUS_IGNORE;
656extern MPI_Fint*MPI_F_STATUSES_IGNORE;
657
660#endif /* NMAD_FORTRAN */
661
662
665#endif /* NM_MPI_TYPES_H */
void * extra_state
nm_mpi_status_t status
status of request
int MPI_T_pvar_handle
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_Errhandler
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_SUBARRAY
@ 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)
int MPI_T_pvar_session
int64_t nm_mpi_count_t
internal type for counts
int MPI_T_cvar_handle
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.
Status 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