4 #include <stdlib.h> /* for redefinition of exit() below */
5 #include <inttypes.h> /* for intptr_t */
6 #include "conv-config.h"
7 #include "charm-api.h" /* for CLINKAGE */
15 /* NON-standard define: this lets people #ifdef on
16 AMPI, e.g. to portably use AMPI extensions to the MPI standard. */
19 /* Macro to define the AMPI'fied name of an MPI function, plus the AMPI'fied
20 * PMPI name. When building Charm++/AMPI on top of MPI, we rename the user's
21 * MPI_ calls to use AMPI_. */
23 #define AMPI_API_DEF(return_type, function_name, ...) \
24 return_type A##function_name(__VA_ARGS__); \
25 return_type AP##function_name(__VA_ARGS__);
27 #define AMPI_API_DEF(return_type, function_name, ...) \
28 return_type function_name(__VA_ARGS__); \
29 return_type P##function_name(__VA_ARGS__);
33 # define AMPI_API_STATIC_CAST(type, obj) (static_cast<type>(obj))
34 # define AMPI_API_REINTERPRET_CAST(type, obj) (reinterpret_cast<type>(obj))
36 # define AMPI_API_STATIC_CAST(type, obj) ((type)(obj))
37 # define AMPI_API_REINTERPRET_CAST(type, obj) ((type)(obj))
40 CLINKAGE
void AMPI_Exit(int exitCode
);
41 /* Allow applications to terminate cleanly with exit():
42 * In C++ applications, this can conflict with user-defined
43 * exit routines inside namespaces, such as Foo::exit(), so
44 * we allow turning off AMPI's renaming of exit() with
45 * -DAMPI_RENAME_EXIT=0. Same for 'atexit' below... */
46 #ifndef AMPI_RENAME_EXIT
47 #define AMPI_RENAME_EXIT 1
50 #define exit(status) AMPI_Exit(status)
53 /* Notify AMPI when atexit() is used in order to prevent running MPI_Finalize()
54 in a function registered with atexit. Only applies when including mpi.h. */
55 CLINKAGE
void ampiMarkAtexit(void);
56 #ifndef AMPI_RENAME_ATEXIT
57 #define AMPI_RENAME_ATEXIT 1
59 #if AMPI_RENAME_ATEXIT
60 #define atexit(...) do {atexit(__VA_ARGS__); atexit(ampiMarkAtexit);} while(0)
64 Silently rename the user's main routine.
65 This is needed so we can call the routine as a new thread,
66 instead of as an actual "main".
68 #ifdef __cplusplus /* C++ version-- rename "main" as "AMPI_Main_cpp" */
69 # define main AMPI_Main_cpp
70 int AMPI_Main_cpp(int argc
,char **argv
); /* prototype for C++ main routine */
71 int AMPI_Main_cpp(void); /* prototype for C++ main routines without args, as in autoconf tests */
74 #else /* C version-- rename "main" as "AMPI_Main" */
75 # define main AMPI_Main
78 int AMPI_Main(); /* declaration for C main routine (not a strict prototype!) */
79 void AMPI_Main_c(int argc
,char **argv
); /* C wrapper for calling AMPI_Main() from C++ */
81 typedef void (*MPI_MainFn
) (int,char**);
83 typedef int MPI_Datatype
;
84 typedef intptr_t MPI_Aint
;
86 typedef MPI_Aint MPI_Count
;
87 typedef long long int MPI_Offset
;
88 #define HAVE_MPI_OFFSET 1 /* ROMIO requires us to set this */
90 /********************** MPI-1.1 prototypes and defines ***************************/
93 #define MPI_ERR_BUFFER 1
94 #define MPI_ERR_COUNT 2
95 #define MPI_ERR_TYPE 3
97 #define MPI_ERR_COMM 5
98 #define MPI_ERR_RANK 6
99 #define MPI_ERR_REQUEST 7
100 #define MPI_ERR_ROOT 8
101 #define MPI_ERR_GROUP 9
102 #define MPI_ERR_OP 10
103 #define MPI_ERR_TOPOLOGY 11
104 #define MPI_ERR_DIMS 12
105 #define MPI_ERR_ARG 13
106 #define MPI_ERR_UNKNOWN 14
107 #define MPI_ERR_TRUNCATE 15
108 #define MPI_ERR_OTHER 16
109 #define MPI_ERR_INTERN 17
110 #define MPI_ERR_IN_STATUS 18
111 #define MPI_ERR_PENDING 19
113 #define MPI_ERR_ACCESS 20
114 #define MPI_ERR_AMODE 21
115 #define MPI_ERR_ASSERT 22
116 #define MPI_ERR_BAD_FILE 23
117 #define MPI_ERR_BASE 24
118 #define MPI_ERR_CONVERSION 25
119 #define MPI_ERR_DISP 26
120 #define MPI_ERR_DUP_DATAREP 27
121 #define MPI_ERR_FILE_EXISTS 28
122 #define MPI_ERR_FILE_IN_USE 29
123 #define MPI_ERR_FILE 30
124 #define MPI_ERR_INFO_KEY 31
125 #define MPI_ERR_INFO_NOKEY 32
126 #define MPI_ERR_INFO_VALUE 33
127 #define MPI_ERR_INFO 34
128 #define MPI_ERR_IO 35
129 #define MPI_ERR_KEYVAL 36
130 #define MPI_ERR_LOCKTYPE 37
131 #define MPI_ERR_NAME 38
132 #define MPI_ERR_NO_MEM 39
133 #define MPI_ERR_NOT_SAME 40
134 #define MPI_ERR_NO_SPACE 41
135 #define MPI_ERR_NO_SUCH_FILE 42
136 #define MPI_ERR_PORT 43
137 #define MPI_ERR_QUOTA 44
138 #define MPI_ERR_READ_ONLY 45
139 #define MPI_ERR_RMA_CONFLICT 46
140 #define MPI_ERR_RMA_SYNC 47
141 #define MPI_ERR_SERVICE 48
142 #define MPI_ERR_SIZE 49
143 #define MPI_ERR_SPAWN 50
144 #define MPI_ERR_UNSUPPORTED_DATAREP 51
145 #define MPI_ERR_UNSUPPORTED_OPERATION 52
146 #define MPI_ERR_WIN 53
147 #define MPI_ERR_LASTCODE 53
148 #define MPI_LASTUSEDCODE 53
149 /* 0=MPI_SUCCESS<MPI_ERRs(...)<MPI_ERR<=MPI_ERR_LASTCODE<=MPI_LASTUSEDCODE */
151 #define MPI_MAX_PROCESSOR_NAME 256
152 #define MPI_MAX_ERROR_STRING 256
153 #define MPI_MAX_LIBRARY_VERSION_STRING 256
155 #define MPI_VERSION 2
156 #define MPI_SUBVERSION 2
158 #define MPI_THREAD_SINGLE 1
159 #define MPI_THREAD_FUNNELED 2
160 #define MPI_THREAD_SERIALIZED 3
161 #define MPI_THREAD_MULTIPLE 4
163 /* these values have to match values in ampif.h */
165 #define MPI_DATATYPE_NULL -1
168 #define MPI_INTEGER MPI_INT
170 #define MPI_LOGICAL 3
177 #define MPI_UNSIGNED_CHAR 10
178 #define MPI_UNSIGNED_SHORT 11
179 #define MPI_UNSIGNED 12
180 #define MPI_UNSIGNED_LONG 13
181 #define MPI_LONG_DOUBLE 14
183 #define MPI_LONG_LONG_INT 15
184 #define MPI_LONG_LONG MPI_LONG_LONG_INT
185 #define MPI_OFFSET MPI_LONG_LONG
186 #define MPI_SIGNED_CHAR 16
187 #define MPI_UNSIGNED_LONG_LONG 17
189 #define MPI_INT8_T 19
190 #define MPI_INT16_T 20
191 #define MPI_INT32_T 21
192 #define MPI_INT64_T 22
193 #define MPI_UINT8_T 23
194 #define MPI_UINT16_T 24
195 #define MPI_UINT32_T 25
196 #define MPI_UINT64_T 26
198 #define MPI_COUNT MPI_AINT
202 * AMPI_MAX_BASIC_TYPE is defined in ddt.h
203 * and is tied to the above values, if the above
204 * indexes change or values are added/deleted
205 * you may need to change AMPI_MAX_BASIC_TYPE
208 #define MPI_FLOAT_INT 30
209 #define MPI_DOUBLE_INT 31
210 #define MPI_LONG_INT 32
212 #define MPI_SHORT_INT 34
213 #define MPI_LONG_DOUBLE_INT 35
214 #define MPI_2FLOAT 36
215 #define MPI_2DOUBLE 37
217 #define MPI_COMPLEX 38
218 #define MPI_FLOAT_COMPLEX 39
219 #define MPI_DOUBLE_COMPLEX 40
220 #define MPI_LONG_DOUBLE_COMPLEX 41
222 * AMPI_MAX_PREDEFINED_TYPE is defined in ddt.h
223 * and is tied to the above values, if the above
224 * indexes change or values are added/deleted
225 * you may need to change AMPI_MAX_PREDEFINED_TYPE
228 #define MPI_ANY_TAG MPI_TAG_UB_VALUE+1
229 #define MPI_REQUEST_NULL (-1)
230 #define MPI_GROUP_NULL (-1)
231 #define MPI_GROUP_EMPTY 0
232 #define MPI_COMM_NULL (-1)
233 #define MPI_PROC_NULL (-2)
234 #define MPI_ROOT (-3)
235 #define MPI_ANY_SOURCE (-1)
236 #define MPI_KEYVAL_INVALID (-1)
237 #define MPI_INFO_NULL (-1)
239 #define MPI_IN_PLACE AMPI_API_REINTERPRET_CAST(void *, -1L)
241 #define MPI_BOTTOM AMPI_API_REINTERPRET_CAST(void *, -2L)
242 #define MPI_UNDEFINED (-32766)
245 #define MPI_SIMILAR 1
246 #define MPI_CONGRUENT 2
247 #define MPI_UNEQUAL 3
249 #define MPI_COMM_TYPE_SHARED 1
250 #define AMPI_COMM_TYPE_HOST 2
251 #define AMPI_COMM_TYPE_PROCESS 3
252 #define AMPI_COMM_TYPE_WTH 4
256 typedef void (MPI_User_function
)(void *invec
, void *inoutvec
,
257 int *len
, MPI_Datatype
*datatype
);
259 #define MPI_OP_NULL -1
270 #define MPI_MAXLOC 10
271 #define MPI_MINLOC 11
272 #define MPI_REPLACE 12
275 * AMPI_MAX_PREDEFINED_OP is defined in ampiimpl.h
276 * and is tied to the above values, if the above
277 * indexes change or values are added/deleted
278 * you may need to change AMPI_MAX_PREDEFINED_TYPE
281 #define MPI_UNWEIGHTED 0
284 #define MPI_DIST_GRAPH 3
286 /* This is one less than the system-tags defined in ampiimpl.h.
287 * This is so that the tags used by the system don't clash with user-tags.
288 * The MPI 3.1 standard requires this to be at least 32767 (2^15 -1).
290 #define MPI_TAG_UB_VALUE 1073741824
292 /* These are the builtin MPI keyvals, plus some AMPI specific ones. */
293 #define MPI_TAG_UB -2
296 #define MPI_WTIME_IS_GLOBAL -5
297 #define MPI_APPNUM -6
298 #define MPI_UNIVERSE_SIZE -7
299 #define MPI_WIN_BASE -8
300 #define MPI_WIN_SIZE -9
301 #define MPI_WIN_DISP_UNIT -10
302 #define MPI_WIN_MODEL -11
303 #define MPI_WIN_CREATE_FLAVOR -12
304 #define AMPI_MY_WTH -13
305 #define AMPI_NUM_WTHS -14
306 #define AMPI_MY_PROCESS -15
307 #define AMPI_NUM_PROCESSES -16
309 /** Communicators give a communication context to a set of processors.
310 An intercommunicator can be used for point to point messaging between two groups.
311 An intracommunicator can be used to send messages within a single group. */
312 typedef int MPI_Comm
;
314 /** Groups represent an set of processors 0...n-1. They can be created locally */
315 typedef int MPI_Group
;
317 typedef int MPI_Info
;
319 #define MPI_COMM_SELF AMPI_API_STATIC_CAST(MPI_Comm, 1000000) /*MPI_COMM_SELF is the first split comm */
320 #define MPI_COMM_FIRST_SPLIT AMPI_API_STATIC_CAST(MPI_Comm, 1000000) /*Communicator from MPI_Comm_split */
321 #define MPI_COMM_FIRST_GROUP AMPI_API_STATIC_CAST(MPI_Comm, 2000000) /*Communicator from MPI_Comm_group */
322 #define MPI_COMM_FIRST_CART AMPI_API_STATIC_CAST(MPI_Comm, 3000000) /*Communicator from MPI_Cart_create */
323 #define MPI_COMM_FIRST_GRAPH AMPI_API_STATIC_CAST(MPI_Comm, 4000000) /*Communicator from MPI_Graph_create */
324 #define MPI_COMM_FIRST_DIST_GRAPH AMPI_API_STATIC_CAST(MPI_Comm, 5000000) /*Communicator from MPI_Dist_Graph_create */
325 #define MPI_COMM_FIRST_INTER AMPI_API_STATIC_CAST(MPI_Comm, 6000000) /*Communicator from MPI_Intercomm_create*/
326 #define MPI_COMM_FIRST_INTRA AMPI_API_STATIC_CAST(MPI_Comm, 7000000) /*Communicator from MPI_Intercomm_merge*/
327 #define MPI_COMM_FIRST_RESVD AMPI_API_STATIC_CAST(MPI_Comm, 8000000) /*Communicator reserved for now*/
328 #define MPI_COMM_WORLD AMPI_API_STATIC_CAST(MPI_Comm, 9000000) /*Start of universe*/
329 #define MPI_MAX_COMM_WORLDS 8
330 extern MPI_Comm MPI_COMM_UNIVERSE
[MPI_MAX_COMM_WORLDS
];
332 #define MPI_INFO_ENV AMPI_API_STATIC_CAST(MPI_Info, 0)
333 #define AMPI_INFO_LB_SYNC AMPI_API_STATIC_CAST(MPI_Info, 1)
334 #define AMPI_INFO_LB_ASYNC AMPI_API_STATIC_CAST(MPI_Info, 2)
335 #define AMPI_INFO_CHKPT_IN_MEMORY AMPI_API_STATIC_CAST(MPI_Info, 3)
337 /* the size of MPI_Status must conform to MPI_STATUS_SIZE in ampif.h */
339 typedef int MPI_Request
;
341 int MPI_TAG
, MPI_SOURCE
, MPI_COMM
, MPI_LENGTH
, MPI_ERROR
, MPI_CANCEL
; /* FIXME: MPI_ERROR is never used */
345 #define MPI_STATUS_IGNORE AMPI_API_REINTERPRET_CAST(MPI_Status *, 0)
346 #define MPI_STATUSES_IGNORE AMPI_API_REINTERPRET_CAST(MPI_Status *, 0)
348 /* type for MPI messages used in MPI_Mprobe, MPI_Mrecv, MPI_Improbe, MPI_Imrecv */
349 typedef int MPI_Message
;
350 #define MPI_MESSAGE_NULL -1
351 #define MPI_MESSAGE_NO_PROC -2
353 typedef int MPI_Errhandler
;
354 #define MPI_ERRHANDLER_NULL 0
355 #define MPI_ERRORS_RETURN 1
356 #define MPI_ERRORS_ARE_FATAL 2
358 typedef void (MPI_Comm_errhandler_fn
)(MPI_Comm
*, int *, ...);
359 typedef void (MPI_Comm_errhandler_function
)(MPI_Comm
*, int *, ...);
360 typedef int (MPI_Comm_copy_attr_function
)(MPI_Comm oldcomm
, int keyval
,
361 void *extra_state
, void *attribute_val_in
,
362 void *attribute_val_out
, int *flag
);
363 typedef int (MPI_Comm_delete_attr_function
)(MPI_Comm comm
, int keyval
,
364 void *attribute_val
, void *extra_state
);
366 typedef void (MPI_Handler_function
)(MPI_Comm
*, int *, ...);
367 typedef int (MPI_Copy_function
)(MPI_Comm oldcomm
, int keyval
,
368 void *extra_state
, void *attribute_val_in
,
369 void *attribute_val_out
, int *flag
);
370 typedef int (MPI_Delete_function
)(MPI_Comm comm
, int keyval
,
371 void *attribute_val
, void *extra_state
);
373 #define MPI_COMM_NULL_COPY_FN MPI_comm_null_copy_fn
374 #define MPI_COMM_NULL_DELETE_FN MPI_comm_null_delete_fn
375 #define MPI_COMM_DUP_FN MPI_comm_dup_fn
377 #define MPI_NULL_COPY_FN MPI_comm_null_copy_fn
378 #define MPI_NULL_DELETE_FN MPI_comm_null_delete_fn
379 #define MPI_DUP_FN MPI_comm_dup_fn
381 int MPI_COMM_NULL_COPY_FN ( MPI_Comm
, int, void *, void *, void *, int * );
382 int MPI_COMM_NULL_DELETE_FN ( MPI_Comm
, int, void *, void * );
383 int MPI_COMM_DUP_FN ( MPI_Comm
, int, void *, void *, void *, int * );
385 typedef int MPI_Type_copy_attr_function(MPI_Datatype oldtype
, int type_keyval
, void *extra_state
,
386 void *attribute_val_in
, void *attribute_val_out
, int *flag
);
387 typedef int MPI_Type_delete_attr_function(MPI_Datatype datatype
, int type_keyval
,
388 void *attribute_val
, void *extra_state
);
390 #define MPI_TYPE_NULL_DELETE_FN MPI_type_null_delete_fn
391 #define MPI_TYPE_NULL_COPY_FN MPI_type_null_copy_fn
392 #define MPI_TYPE_DUP_FN MPI_type_dup_fn
394 int MPI_TYPE_NULL_COPY_FN ( MPI_Datatype
, int, void *, void *, void *, int * );
395 int MPI_TYPE_NULL_DELETE_FN ( MPI_Datatype
, int, void *, void * );
396 int MPI_TYPE_DUP_FN ( MPI_Datatype
, int, void *, void *, void *, int * );
398 typedef int MPI_Grequest_query_function(void *extra_state
, MPI_Status
*status
);
399 typedef int MPI_Grequest_free_function(void *extra_state
);
400 typedef int MPI_Grequest_cancel_function(void *extra_state
, int complete
);
404 typedef void (*MPI_PupFn
)(pup_er
, void*);
405 typedef void (*MPI_MigrateFn
)(void);
407 /* for the datatype decoders */
408 #define MPI_COMBINER_NAMED 1
409 #define MPI_COMBINER_CONTIGUOUS 2
410 #define MPI_COMBINER_VECTOR 3
411 #define MPI_COMBINER_HVECTOR 4
412 #define MPI_COMBINER_HVECTOR_INTEGER 5
413 #define MPI_COMBINER_INDEXED 6
414 #define MPI_COMBINER_HINDEXED 7
415 #define MPI_COMBINER_HINDEXED_INTEGER 8
416 #define MPI_COMBINER_STRUCT 9
417 #define MPI_COMBINER_STRUCT_INTEGER 10
418 #define MPI_COMBINER_DARRAY 11
419 #define MPI_COMBINER_RESIZED 12
420 #define MPI_COMBINER_SUBARRAY 13
421 #define MPI_COMBINER_INDEXED_BLOCK 14
422 #define MPI_COMBINER_HINDEXED_BLOCK 15
424 #define MPI_BSEND_OVERHEAD 0
426 /* When AMPI is built on top of MPI, rename user's MPI_* calls to AMPI_* */
429 #define MPI_Send AMPI_Send
430 #define PMPI_Send APMPI_Send
431 #define MPI_Ssend AMPI_Ssend
432 #define PMPI_Ssend APMPI_Ssend
433 #define MPI_Recv AMPI_Recv
434 #define PMPI_Recv APMPI_Recv
435 #define MPI_Mrecv AMPI_Mrecv
436 #define PMPI_Mrecv APMPI_Mrecv
437 #define MPI_Get_count AMPI_Get_count
438 #define PMPI_Get_count APMPI_Get_count
439 #define MPI_Bsend AMPI_Bsend
440 #define PMPI_Bsend APMPI_Bsend
441 #define MPI_Rsend AMPI_Rsend
442 #define PMPI_Rsend APMPI_Rsend
443 #define MPI_Buffer_attach AMPI_Buffer_attach
444 #define PMPI_Buffer_attach APMPI_Buffer_attach
445 #define MPI_Buffer_detach AMPI_Buffer_detach
446 #define PMPI_Buffer_detach APMPI_Buffer_detach
447 #define MPI_Isend AMPI_Isend
448 #define PMPI_Isend APMPI_Isend
449 #define MPI_Ibsend AMPI_Ibsend
450 #define PMPI_Ibsend APMPI_Ibsend
451 #define MPI_Issend AMPI_Issend
452 #define PMPI_Issend APMPI_Issend
453 #define MPI_Irsend AMPI_Irsend
454 #define PMPI_Irsend APMPI_Irsend
455 #define MPI_Irecv AMPI_Irecv
456 #define PMPI_Irecv APMPI_Irecv
457 #define MPI_Imrecv AMPI_Imrecv
458 #define PMPI_Imrecv APMPI_Imrecv
459 #define MPI_Waitany AMPI_Waitany
460 #define PMPI_Waitany APMPI_Waitany
461 #define MPI_Test AMPI_Test
462 #define PMPI_Test APMPI_Test
463 #define MPI_Wait AMPI_Wait
464 #define PMPI_Wait APMPI_Wait
465 #define MPI_Testany AMPI_Testany
466 #define PMPI_Testany APMPI_Testany
467 #define MPI_Waitall AMPI_Waitall
468 #define PMPI_Waitall APMPI_Waitall
469 #define MPI_Testall AMPI_Testall
470 #define PMPI_Testall APMPI_Testall
471 #define MPI_Waitsome AMPI_Waitsome
472 #define PMPI_Waitsome APMPI_Waitsome
473 #define MPI_Testsome AMPI_Testsome
474 #define PMPI_Testsome APMPI_Testsome
475 #define MPI_Request_get_status AMPI_Request_get_status
476 #define PMPI_Request_get_status APMPI_Request_get_status
477 #define MPI_Request_free AMPI_Request_free
478 #define PMPI_Request_free APMPI_Request_free
479 #define MPI_Grequest_start AMPI_Grequest_start
480 #define PMPI_Grequest_start APMPI_Grequest_start
481 #define MPI_Grequest_complete AMPI_Grequest_complete
482 #define PMPI_Grequest_complete APMPI_Grequest_complete
483 #define MPI_Cancel AMPI_Cancel
484 #define PMPI_Cancel APMPI_Cancel
485 #define MPI_Test_cancelled AMPI_Test_cancelled
486 #define PMPI_Test_cancelled APMPI_Test_cancelled
487 #define MPI_Status_set_cancelled AMPI_Status_set_cancelled
488 #define PMPI_Status_set_cancelled APMPI_Status_set_cancelled
489 #define MPI_Iprobe AMPI_Iprobe
490 #define PMPI_Iprobe APMPI_Iprobe
491 #define MPI_Probe AMPI_Probe
492 #define PMPI_Probe APMPI_Probe
493 #define MPI_Improbe AMPI_Improbe
494 #define PMPI_Improbe APMPI_Improbe
495 #define MPI_Mprobe AMPI_Mprobe
496 #define PMPI_Mprobe APMPI_Mprobe
497 #define MPI_Send_init AMPI_Send_init
498 #define PMPI_Send_init APMPI_Send_init
499 #define MPI_Ssend_init AMPI_Ssend_init
500 #define PMPI_Ssend_init APMPI_Ssend_init
501 #define MPI_Rsend_init AMPI_Rsend_init
502 #define PMPI_Rsend_init APMPI_Rsend_init
503 #define MPI_Bsend_init AMPI_Bsend_init
504 #define PMPI_Bsend_init APMPI_Bsend_init
505 #define MPI_Recv_init AMPI_Recv_init
506 #define PMPI_Recv_init APMPI_Recv_init
507 #define MPI_Start AMPI_Start
508 #define PMPI_Start APMPI_Start
509 #define MPI_Startall AMPI_Startall
510 #define PMPI_Startall APMPI_Startall
511 #define MPI_Sendrecv AMPI_Sendrecv
512 #define PMPI_Sendrecv APMPI_Sendrecv
513 #define MPI_Sendrecv_replace AMPI_Sendrecv_replace
514 #define PMPI_Sendrecv_replace APMPI_Sendrecv_replace
517 #define MPI_Type_contiguous AMPI_Type_contiguous
518 #define PMPI_Type_contiguous APMPI_Type_contiguous
519 #define MPI_Type_vector AMPI_Type_vector
520 #define PMPI_Type_vector APMPI_Type_vector
521 #define MPI_Type_create_hvector AMPI_Type_create_hvector
522 #define PMPI_Type_create_hvector APMPI_Type_create_hvector
523 #define MPI_Type_hvector AMPI_Type_hvector
524 #define PMPI_Type_hvector APMPI_Type_hvector
525 #define MPI_Type_indexed AMPI_Type_indexed
526 #define PMPI_Type_indexed APMPI_Type_indexed
527 #define MPI_Type_create_hindexed AMPI_Type_create_hindexed
528 #define PMPI_Type_create_hindexed APMPI_Type_create_hindexed
529 #define MPI_Type_create_indexed_block AMPI_Type_create_indexed_block
530 #define PMPI_Type_create_indexed_block APMPI_Type_create_indexed_block
531 #define MPI_Type_create_hindexed_block AMPI_Type_create_hindexed_block
532 #define PMPI_Type_create_hindexed_block APMPI_Type_create_hindexed_block
533 #define MPI_Type_hindexed AMPI_Type_hindexed
534 #define PMPI_Type_hindexed APMPI_Type_hindexed
535 #define MPI_Type_create_struct AMPI_Type_create_struct
536 #define PMPI_Type_create_struct APMPI_Type_create_struct
537 #define MPI_Type_struct AMPI_Type_struct
538 #define PMPI_Type_struct APMPI_Type_struct
539 #define MPI_Type_get_envelope AMPI_Type_get_envelope
540 #define PMPI_Type_get_envelope APMPI_Type_get_envelope
541 #define MPI_Type_get_contents AMPI_Type_get_contents
542 #define PMPI_Type_get_contents APMPI_Type_get_contents
543 #define MPI_Type_commit AMPI_Type_commit
544 #define PMPI_Type_commit APMPI_Type_commit
545 #define MPI_Type_free AMPI_Type_free
546 #define PMPI_Type_free APMPI_Type_free
547 #define MPI_Type_get_extent AMPI_Type_get_extent
548 #define PMPI_Type_get_extent APMPI_Type_get_extent
549 #define MPI_Type_get_extent_x AMPI_Type_get_extent_x
550 #define PMPI_Type_get_extent_x APMPI_Type_get_extent_x
551 #define MPI_Type_extent AMPI_Type_extent
552 #define PMPI_Type_extent APMPI_Type_extent
553 #define MPI_Type_get_true_extent AMPI_Type_get_true_extent
554 #define PMPI_Type_get_true_extent APMPI_Type_get_true_extent
555 #define MPI_Type_get_true_extent_x AMPI_Type_get_true_extent_x
556 #define PMPI_Type_get_true_extent_X APMPI_Type_get_true_extent_x
557 #define MPI_Type_size AMPI_Type_size
558 #define PMPI_Type_size APMPI_Type_size
559 #define MPI_Type_size_x AMPI_Type_size_x
560 #define PMPI_Type_size_x APMPI_Type_size_x
561 #define MPI_Type_lb AMPI_Type_lb
562 #define PMPI_Type_lb APMPI_Type_lb
563 #define MPI_Type_ub AMPI_Type_ub
564 #define PMPI_Type_ub APMPI_Type_ub
565 #define MPI_Type_set_name AMPI_Type_set_name
566 #define PMPI_Type_set_name APMPI_Type_set_name
567 #define MPI_Type_get_name AMPI_Type_get_name
568 #define PMPI_Type_get_name APMPI_Type_get_name
569 #define MPI_Type_dup AMPI_Type_dup
570 #define PMPI_Type_dup APMPI_Type_dup
571 #define MPI_Type_create_resized AMPI_Type_create_resized
572 #define PMPI_Type_create_resized APMPI_Type_create_resized
573 #define MPI_Type_set_attr AMPI_Type_set_attr
574 #define PMPI_Type_set_attr APMPI_Type_set_attr
575 #define MPI_Type_get_attr AMPI_Type_get_attr
576 #define PMPI_Type_get_attr APMPI_Type_get_attr
577 #define MPI_Type_delete_attr AMPI_Type_delete_attr
578 #define PMPI_Type_delete_attr APMPI_Type_delete_attr
579 #define MPI_Type_create_keyval AMPI_Type_create_keyval
580 #define PMPI_Type_create_keyval APMPI_Type_create_keyval
581 #define MPI_Type_free_keyval AMPI_Type_free_keyval
582 #define PMPI_Type_free_keyval APMPI_Type_free_keyval
583 #define MPI_Get_address AMPI_Get_address
584 #define PMPI_Get_address APMPI_Get_address
585 #define MPI_Address AMPI_Address
586 #define PMPI_Address APMPI_Address
587 #define MPI_Status_set_elements AMPI_Status_set_elements
588 #define PMPI_Status_set_elements APMPI_Status_set_elements
589 #define MPI_Status_set_elements_x AMPI_Status_set_elements_x
590 #define PMPI_Status_set_elements_x APMPI_Status_set_elements_x
591 #define MPI_Get_elements AMPI_Get_elements
592 #define PMPI_Get_elements APMPI_Get_elements
593 #define MPI_Get_elements_x AMPI_Get_elements_x
594 #define PMPI_Get_elements_x APMPI_Get_elements_x
595 #define MPI_Pack AMPI_Pack
596 #define PMPI_Pack APMPI_Pack
597 #define MPI_Unpack AMPI_Unpack
598 #define PMPI_Unpack APMPI_Unpack
599 #define MPI_Pack_size AMPI_Pack_size
600 #define PMPI_Pack_size APMPI_Pack_size
603 #define MPI_Barrier AMPI_Barrier
604 #define PMPI_Barrier APMPI_Barrier
605 #define MPI_Ibarrier AMPI_Ibarrier
606 #define PMPI_Ibarrier APMPI_Ibarrier
607 #define MPI_Bcast AMPI_Bcast
608 #define PMPI_Bcast APMPI_Bcast
609 #define MPI_Ibcast AMPI_Ibcast
610 #define PMPI_Ibcast APMPI_Ibcast
611 #define MPI_Gather AMPI_Gather
612 #define PMPI_Gather APMPI_Gather
613 #define MPI_Igather AMPI_Igather
614 #define PMPI_Igather APMPI_Igather
615 #define MPI_Gatherv AMPI_Gatherv
616 #define PMPI_Gatherv APMPI_Gatherv
617 #define MPI_Igatherv AMPI_Igatherv
618 #define PMPI_Igatherv APMPI_Igatherv
619 #define MPI_Scatter AMPI_Scatter
620 #define PMPI_Scatter APMPI_Scatter
621 #define MPI_Iscatter AMPI_Iscatter
622 #define PMPI_Iscatter APMPI_Iscatter
623 #define MPI_Scatterv AMPI_Scatterv
624 #define PMPI_Scatterv APMPI_Scatterv
625 #define MPI_Iscatterv AMPI_Iscatterv
626 #define PMPI_Iscatterv APMPI_Iscatterv
627 #define MPI_Allgather AMPI_Allgather
628 #define PMPI_Allgather APMPI_Allgather
629 #define MPI_Iallgather AMPI_Iallgather
630 #define PMPI_Iallgather APMPI_Iallgather
631 #define MPI_Allgatherv AMPI_Allgatherv
632 #define PMPI_Allgatherv APMPI_Allgatherv
633 #define MPI_Iallgatherv AMPI_Iallgatherv
634 #define PMPI_Iallgatherv APMPI_Iallgatherv
635 #define MPI_Alltoall AMPI_Alltoall
636 #define PMPI_Alltoall APMPI_Alltoall
637 #define MPI_Ialltoall AMPI_Ialltoall
638 #define PMPI_Ialltoall APMPI_Ialltoall
639 #define MPI_Alltoallv AMPI_Alltoallv
640 #define PMPI_Alltoallv APMPI_Alltoallv
641 #define MPI_Ialltoallv AMPI_Ialltoallv
642 #define PMPI_Ialltoallv APMPI_Ialltoallv
643 #define MPI_Alltoallw AMPI_Alltoallw
644 #define PMPI_Alltoallw APMPI_Alltoallw
645 #define MPI_Ialltoallw AMPI_Ialltoallw
646 #define PMPI_Ialltoallw APMPI_Ialltoallw
647 #define MPI_Reduce AMPI_Reduce
648 #define PMPI_Reduce APMPI_Reduce
649 #define MPI_Ireduce AMPI_Ireduce
650 #define PMPI_Ireduce APMPI_Ireduce
651 #define MPI_Allreduce AMPI_Allreduce
652 #define PMPI_Allreduce APMPI_Allreduce
653 #define MPI_Iallreduce AMPI_Iallreduce
654 #define PMPI_Iallreduce APMPI_Iallreduce
655 #define MPI_Reduce_local AMPI_Reduce_local
656 #define PMPI_Reduce_local APMPI_Reduce_local
657 #define MPI_Reduce_scatter_block AMPI_Reduce_scatter_block
658 #define PMPI_Reduce_scatter_block APMPI_Reduce_scatter_block
659 #define MPI_Ireduce_scatter_block AMPI_Ireduce_scatter_block
660 #define PMPI_Ireduce_scatter_block APMPI_Ireduce_scatter_block
661 #define MPI_Reduce_scatter AMPI_Reduce_scatter
662 #define PMPI_Reduce_scatter APMPI_Reduce_scatter
663 #define MPI_Ireduce_scatter AMPI_Ireduce_scatter
664 #define PMPI_Ireduce_scatter APMPI_Ireduce_scatter
665 #define MPI_Scan AMPI_Scan
666 #define PMPI_Scan APMPI_Scan
667 #define MPI_Iscan AMPI_Iscan
668 #define PMPI_Iscan APMPI_Iscan
669 #define MPI_Exscan AMPI_Exscan
670 #define PMPI_Exscan APMPI_Exscan
671 #define MPI_Iexscan AMPI_Iexscan
672 #define PMPI_Iexscan APMPI_Iexscan
674 /***neighborhood collectives***/
675 #define MPI_Neighbor_alltoall AMPI_Neighbor_alltoall
676 #define PMPI_Neighbor_alltoall APMPI_Neighbor_alltoall
677 #define MPI_Ineighbor_alltoall AMPI_Ineighbor_alltoall
678 #define PMPI_Ineighbor_alltoall APMPI_Ineighbor_alltoall
679 #define MPI_Neighbor_alltoallv AMPI_Neighbor_alltoallv
680 #define PMPI_Neighbor_alltoallv APMPI_Neighbor_alltoallv
681 #define MPI_Ineighbor_alltoallv AMPI_Ineighbor_alltoallv
682 #define PMPI_Ineighbor_alltoallv APMPI_Ineighbor_alltoallv
683 #define MPI_Neighbor_alltoallw AMPI_Neighbor_alltoallw
684 #define PMPI_Neighbor_alltoallw APMPI_Neighbor_alltoallw
685 #define MPI_Ineighbor_alltoallw AMPI_Ineighbor_alltoallw
686 #define PMPI_Ineighbor_alltoallw APMPI_Ineighbor_alltoallw
687 #define MPI_Neighbor_allgather AMPI_Neighbor_allgather
688 #define PMPI_Neighbor_allgather APMPI_Neighbor_allgather
689 #define MPI_Ineighbor_allgather AMPI_Ineighbor_allgather
690 #define PMPI_Ineighbor_allgather APMPI_Ineighbor_allgather
691 #define MPI_Neighbor_allgatherv AMPI_Neighbor_allgatherv
692 #define PMPI_Neighbor_allgatherv APMPI_Neighbor_allgatherv
693 #define MPI_Ineighbor_allgatherv AMPI_Ineighbor_allgatherv
694 #define PMPI_Ineighbor_allgatherv APMPI_Ineighbor_allgatherv
697 #define MPI_Op_create AMPI_Op_create
698 #define PMPI_Op_create APMPI_Op_create
699 #define MPI_Op_free AMPI_Op_free
700 #define PMPI_Op_free APMPI_Op_free
701 #define MPI_Op_commutative AMPI_Op_commutative
702 #define PMPI_Op_commutative APMPI_Op_commutative
705 #define MPI_Group_size AMPI_Group_size
706 #define PMPI_Group_size APMPI_Group_size
707 #define MPI_Group_rank AMPI_Group_rank
708 #define PMPI_Group_rank APMPI_Group_rank
709 #define MPI_Group_translate_ranks AMPI_Group_translate_ranks
710 #define PMPI_Group_translate_ranks APMPI_Group_translate_ranks
711 #define MPI_Group_compare AMPI_Group_compare
712 #define PMPI_Group_compare APMPI_Group_compare
713 #define MPI_Comm_group AMPI_Comm_group
714 #define PMPI_Comm_group APMPI_Comm_group
715 #define MPI_Group_union AMPI_Group_union
716 #define PMPI_Group_union APMPI_Group_union
717 #define MPI_Group_intersection AMPI_Group_intersection
718 #define PMPI_Group_intersection APMPI_Group_intersection
719 #define MPI_Group_difference AMPI_Group_difference
720 #define PMPI_Group_difference APMPI_Group_difference
721 #define MPI_Group_incl AMPI_Group_incl
722 #define PMPI_Group_incl APMPI_Group_incl
723 #define MPI_Group_excl AMPI_Group_excl
724 #define PMPI_Group_excl APMPI_Group_excl
725 #define MPI_Group_range_incl AMPI_Group_range_incl
726 #define PMPI_Group_range_incl APMPI_Group_range_incl
727 #define MPI_Group_range_excl AMPI_Group_range_excl
728 #define PMPI_Group_range_excl APMPI_Group_range_excl
729 #define MPI_Group_free AMPI_Group_free
730 #define PMPI_Group_free APMPI_Group_free
732 /***communicators***/
733 #define MPI_Intercomm_create AMPI_Intercomm_create
734 #define PMPI_Intercomm_create APMPI_Intercomm_create
735 #define MPI_Intercomm_merge AMPI_Intercomm_merge
736 #define PMPI_Intercomm_merge APMPI_Intercomm_merge
737 #define MPI_Comm_create AMPI_Comm_create
738 #define PMPI_Comm_create APMPI_Comm_create
739 #define MPI_Comm_create_group AMPI_Comm_create_group
740 #define PMPI_Comm_create_group APMPI_Comm_create_group
741 #define MPI_Comm_size AMPI_Comm_size
742 #define PMPI_Comm_size APMPI_Comm_size
743 #define MPI_Comm_rank AMPI_Comm_rank
744 #define PMPI_Comm_rank APMPI_Comm_rank
745 #define MPI_Comm_compare AMPI_Comm_compare
746 #define PMPI_Comm_compare APMPI_Comm_compare
747 #define MPI_Comm_split AMPI_Comm_split
748 #define PMPI_Comm_split APMPI_Comm_split
749 #define MPI_Comm_split_type AMPI_Comm_split_type
750 #define PMPI_Comm_split_type APMPI_Comm_split_type
751 #define MPI_Comm_dup AMPI_Comm_dup
752 #define PMPI_Comm_dup APMPI_Comm_dup
753 #define MPI_Comm_idup AMPI_Comm_idup
754 #define PMPI_Comm_idup APMPI_Comm_idup
755 #define MPI_Comm_dup_with_info AMPI_Comm_dup_with_info
756 #define PMPI_Comm_dup_with_info APMPI_Comm_dup_with_info
757 #define MPI_Comm_idup_with_info AMPI_Comm_idup_with_info
758 #define PMPI_Comm_idup_with_info APMPI_Comm_idup_with_info
759 #define MPI_Comm_free AMPI_Comm_free
760 #define PMPI_Comm_free APMPI_Comm_free
761 #define MPI_Comm_test_inter AMPI_Comm_test_inter
762 #define PMPI_Comm_test_inter APMPI_Comm_test_inter
763 #define MPI_Comm_remote_size AMPI_Comm_remote_size
764 #define PMPI_Comm_remote_size APMPI_Comm_remote_size
765 #define MPI_Comm_remote_group AMPI_Comm_remote_group
766 #define PMPI_Comm_remote_group APMPI_Comm_remote_group
767 #define MPI_Comm_set_name AMPI_Comm_set_name
768 #define PMPI_Comm_set_name APMPI_Comm_set_name
769 #define MPI_Comm_get_name AMPI_Comm_get_name
770 #define PMPI_Comm_get_name APMPI_Comm_get_name
771 #define MPI_Comm_set_info AMPI_Comm_set_info
772 #define PMPI_Comm_set_info APMPI_Comm_set_info
773 #define MPI_Comm_get_info AMPI_Comm_get_info
774 #define PMPI_Comm_get_info APMPI_Comm_get_info
775 #define MPI_Comm_call_errhandler AMPI_Comm_call_errhandler
776 #define PMPI_Comm_call_errhandler APMPI_Comm_call_errhandler
777 #define MPI_Comm_create_errhandler AMPI_Comm_create_errhandler
778 #define PMPI_Comm_create_errhandler APMPI_Comm_create_errhandler
779 #define MPI_Comm_set_errhandler AMPI_Comm_set_errhandler
780 #define PMPI_Comm_set_errhandler APMPI_Comm_set_errhandler
781 #define MPI_Comm_get_errhandler AMPI_Comm_get_errhandler
782 #define PMPI_Comm_get_errhandler APMPI_Comm_get_errhandler
783 #define MPI_Comm_free_errhandler AMPI_Comm_free_errhandler
784 #define PMPI_Comm_free_errhandler APMPI_Comm_free_errhandler
785 #define MPI_Comm_create_keyval AMPI_Comm_create_keyval
786 #define PMPI_Comm_create_keyval APMPI_Comm_create_keyval
787 #define MPI_Comm_free_keyval AMPI_Comm_free_keyval
788 #define PMPI_Comm_free_keyval APMPI_Comm_free_keyval
789 #define MPI_Comm_set_attr AMPI_Comm_set_attr
790 #define PMPI_Comm_set_attr APMPI_Comm_set_attr
791 #define MPI_Comm_get_attr AMPI_Comm_get_attr
792 #define PMPI_Comm_get_attr APMPI_Comm_get_attr
793 #define MPI_Comm_delete_attr AMPI_Comm_delete_attr
794 #define PMPI_Comm_delete_attr APMPI_Comm_delete_attr
796 /***keyvals/attributes***/
797 #define MPI_Keyval_create AMPI_Keyval_create
798 #define PMPI_Keyval_create APMPI_Keyval_create
799 #define MPI_Keyval_free AMPI_Keyval_free
800 #define PMPI_Keyval_free APMPI_Keyval_free
801 #define MPI_Attr_put AMPI_Attr_put
802 #define PMPI_Attr_put APMPI_Attr_put
803 #define MPI_Attr_get AMPI_Attr_get
804 #define PMPI_Attr_get APMPI_Attr_get
805 #define MPI_Attr_delete AMPI_Attr_delete
806 #define PMPI_Attr_delete APMPI_Attr_delete
809 #define MPI_Cart_create AMPI_Cart_create
810 #define PMPI_Cart_create APMPI_Cart_create
811 #define MPI_Graph_create AMPI_Graph_create
812 #define PMPI_Graph_create APMPI_Graph_create
813 #define MPI_Dist_graph_create_adjacent AMPI_Dist_graph_create_adjacent
814 #define PMPI_Dist_graph_create_adjacent APMPI_Dist_graph_create_adjacent
815 #define MPI_Dist_graph_create AMPI_Dist_graph_create
816 #define PMPI_Dist_graph_create APMPI_Dist_graph_create
817 #define MPI_Topo_test AMPI_Topo_test
818 #define PMPI_Topo_test APMPI_Topo_test
819 #define MPI_Cart_map AMPI_Cart_map
820 #define PMPI_Cart_map APMPI_Cart_map
821 #define MPI_Graph_map AMPI_Graph_map
822 #define PMPI_Graph_map APMPI_Graph_map
823 #define MPI_Cartdim_get AMPI_Cartdim_get
824 #define PMPI_Cartdim_get APMPI_Cartdim_get
825 #define MPI_Cart_get AMPI_Cart_get
826 #define PMPI_Cart_get APMPI_Cart_get
827 #define MPI_Cart_rank AMPI_Cart_rank
828 #define PMPI_Cart_rank APMPI_Cart_rank
829 #define MPI_Cart_coords AMPI_Cart_coords
830 #define PMPI_Cart_coords APMPI_Cart_coords
831 #define MPI_Cart_shift AMPI_Cart_shift
832 #define PMPI_Cart_shift APMPI_Cart_shift
833 #define MPI_Graphdims_get AMPI_Graphdims_get
834 #define PMPI_Graphdims_get APMPI_Graphdims_get
835 #define MPI_Graph_get AMPI_Graph_get
836 #define PMPI_Graph_get APMPI_Graph_get
837 #define MPI_Graph_neighbors_count AMPI_Graph_neighbors_count
838 #define PMPI_Graph_neighbors_count APMPI_Graph_neighbors_count
839 #define MPI_Graph_neighbors AMPI_Graph_neighbors
840 #define PMPI_Graph_neighbors APMPI_Graph_neighbors
841 #define MPI_Dist_graph_neighbors_count AMPI_Dist_graph_neighbors_count
842 #define PMPI_Dist_graph_neighbors_count APMPI_Dist_graph_neighbors_count
843 #define MPI_Dist_graph_neighbors AMPI_Dist_graph_neighbors
844 #define PMPI_Dist_graph_neighbors APMPI_Dist_graph_neighbors
845 #define MPI_Dims_create AMPI_Dims_create
846 #define PMPI_Dims_create APMPI_Dims_create
847 #define MPI_Cart_sub AMPI_Cart_sub
848 #define PMPI_Cart_sub APMPI_Cart_sub
850 /***environment management***/
851 #define MPI_Errhandler_create AMPI_Errhandler_create
852 #define PMPI_Errhandler_create APMPI_Errhandler_create
853 #define MPI_Errhandler_set AMPI_Errhandler_set
854 #define PMPI_Errhandler_set APMPI_Errhandler_set
855 #define MPI_Errhandler_get AMPI_Errhandler_get
856 #define PMPI_Errhandler_get APMPI_Errhandler_get
857 #define MPI_Errhandler_free AMPI_Errhandler_free
858 #define PMPI_Errhandler_free APMPI_Errhandler_free
859 #define MPI_Add_error_code AMPI_Add_error_code
860 #define PMPI_Add_error_code APMPI_Add_error_code
861 #define MPI_Add_error_class AMPI_Add_error_class
862 #define PMPI_Add_error_class APMPI_Add_error_class
863 #define MPI_Add_error_string AMPI_Add_error_string
864 #define PMPI_Add_error_string APMPI_Add_error_string
865 #define MPI_Error_class AMPI_Error_class
866 #define PMPI_Error_class APMPI_Error_class
867 #define MPI_Error_string AMPI_Error_string
868 #define PMPI_Error_string APMPI_Error_string
869 #define MPI_Get_version AMPI_Get_version
870 #define PMPI_Get_version APMPI_Get_version
871 #define MPI_Get_library_version AMPI_Get_library_version
872 #define PMPI_Get_library_version APMPI_Get_library_version
873 #define MPI_Get_processor_name AMPI_Get_processor_name
874 #define PMPI_Get_processor_name APMPI_Get_processor_name
875 #define MPI_Wtime AMPI_Wtime
876 #define PMPI_Wtime APMPI_Wtime
877 #define MPI_Wtick AMPI_Wtick
878 #define PMPI_Wtick APMPI_Wtick
879 #define MPI_Is_thread_main AMPI_Is_thread_main
880 #define PMPI_Is_thread_main APMPI_Is_thread_main
881 #define MPI_Query_thread AMPI_Query_thread
882 #define PMPI_Query_thread APMPI_Query_thread
883 #define MPI_Init_thread AMPI_Init_thread
884 #define PMPI_Init_thread APMPI_Init_thread
885 #define MPI_Init AMPI_Init
886 #define PMPI_Init APMPI_Init
887 #define MPI_Initialized AMPI_Initialized
888 #define PMPI_Initialized APMPI_Initialized
889 #define MPI_Finalize AMPI_Finalize
890 #define PMPI_Finalize APMPI_Finalize
891 #define MPI_Finalized AMPI_Finalized
892 #define PMPI_Finalized APMPI_Finalized
893 #define MPI_Abort AMPI_Abort
894 #define PMPI_Abort APMPI_Abort
895 #define MPI_Pcontrol AMPI_Pcontrol
896 #define PMPI_Pcontrol APMPI_Pcontrol
899 #define MPI_Win_create AMPI_Win_create
900 #define PMPI_Win_create APMPI_Win_create
901 #define MPI_Win_free AMPI_Win_free
902 #define PMPI_Win_free APMPI_Win_free
903 #define MPI_Win_create_errhandler AMPI_Win_create_errhandler
904 #define PMPI_Win_create_errhandler APMPI_Win_create_errhandler
905 #define MPI_Win_call_errhandler AMPI_Win_call_errhandler
906 #define PMPI_Win_call_errhandler APMPI_Win_call_errhandler
907 #define MPI_Win_get_errhandler AMPI_Win_get_errhandler
908 #define PMPI_Win_get_errhandler APMPI_Win_get_errhandler
909 #define MPI_Win_set_errhandler AMPI_Win_set_errhandler
910 #define PMPI_Win_set_errhandler APMPI_Win_set_errhandler
911 #define MPI_Win_create_keyval AMPI_Win_create_keyval
912 #define PMPI_Win_create_keyval APMPI_Win_create_keyval
913 #define MPI_Win_free_keyval AMPI_Win_free_keyval
914 #define PMPI_Win_free_keyval APMPI_Win_free_keyval
915 #define MPI_Win_delete_attr AMPI_Win_delete_attr
916 #define PMPI_Win_delete_attr APMPI_Win_delete_attr
917 #define MPI_Win_get_attr AMPI_Win_get_attr
918 #define PMPI_Win_get_attr APMPI_Win_get_attr
919 #define MPI_Win_set_attr AMPI_Win_set_attr
920 #define PMPI_Win_set_attr APMPI_Win_set_attr
921 #define MPI_Win_get_group AMPI_Win_get_group
922 #define PMPI_Win_get_group APMPI_Win_get_group
923 #define MPI_Win_set_name AMPI_Win_set_name
924 #define PMPI_Win_set_name APMPI_Win_set_name
925 #define MPI_Win_get_name AMPI_Win_get_name
926 #define PMPI_Win_get_name APMPI_Win_get_name
927 #define MPI_Win_set_info AMPI_Win_set_info
928 #define PMPI_Win_set_info APMPI_Win_set_info
929 #define MPI_Win_get_info AMPI_Win_get_info
930 #define PMPI_Win_get_info APMPI_Win_get_info
931 #define MPI_Win_fence AMPI_Win_fence
932 #define PMPI_Win_fence APMPI_Win_fence
933 #define MPI_Win_lock AMPI_Win_lock
934 #define PMPI_Win_lock APMPI_Win_lock
935 #define MPI_Win_unlock AMPI_Win_unlock
936 #define PMPI_Win_unlock APMPI_Win_unlock
937 #define MPI_Win_post AMPI_Win_post
938 #define PMPI_Win_post APMPI_Win_post
939 #define MPI_Win_wait AMPI_Win_wait
940 #define PMPI_Win_wait APMPI_Win_wait
941 #define MPI_Win_start AMPI_Win_start
942 #define PMPI_Win_start APMPI_Win_start
943 #define MPI_Win_complete AMPI_Win_complete
944 #define PMPI_Win_complete APMPI_Win_complete
945 #define MPI_Win_test AMPI_Win_test
946 #define PMPI_Win_test APMPI_Win_test
947 #define MPI_Alloc_mem AMPI_Alloc_mem
948 #define PMPI_Alloc_mem APMPI_Alloc_mem
949 #define MPI_Free_mem AMPI_Free_mem
950 #define PMPI_Free_mem APMPI_Free_mem
951 #define MPI_Put AMPI_Put
952 #define PMPI_Put APMPI_Put
953 #define MPI_Get AMPI_Get
954 #define PMPI_Get APMPI_Get
955 #define MPI_Accumulate AMPI_Accumulate
956 #define PMPI_Accumulate APMPI_Accumulate
957 #define MPI_Get_accumulate AMPI_Get_accumulate
958 #define PMPI_Get_accumulate APMPI_Get_accumulate
959 #define MPI_Rput AMPI_Rput
960 #define PMPI_Rput APMPI_Rput
961 #define MPI_Rget AMPI_Rget
962 #define PMPI_Rget APMPI_Rget
963 #define MPI_Raccumulate AMPI_Raccumulate
964 #define PMPI_Raccumulate APMPI_Raccumulate
965 #define MPI_Rget_accumulate AMPI_Rget_accumulate
966 #define PMPI_Rget_accumulate APMPI_Rget_accumulate
967 #define MPI_Fetch_and_op AMPI_Fetch_and_op
968 #define PMPI_Fetch_and_op APMPI_Fetch_and_op
969 #define MPI_Compare_and_swap AMPI_Compare_and_swap
970 #define PMPI_Compare_and_swap APMPI_Compare_and_swap
973 #define MPI_Info_create AMPI_Info_create
974 #define PMPI_Info_create APMPI_Info_create
975 #define MPI_Info_set AMPI_Info_set
976 #define PMPI_Info_set APMPI_Info_set
977 #define MPI_Info_delete AMPI_Info_delete
978 #define PMPI_Info_delete APMPI_Info_delete
979 #define MPI_Info_get AMPI_Info_get
980 #define PMPI_Info_get APMPI_Info_get
981 #define MPI_Info_get_valuelen AMPI_Info_get_valuelen
982 #define PMPI_Info_get_valuelen APMPI_Info_get_valuelen
983 #define MPI_Info_get_nkeys AMPI_Info_get_nkeys
984 #define PMPI_Info_get_nkeys APMPI_Info_get_nkeys
985 #define MPI_Info_get_nthkey AMPI_Info_get_nthkey
986 #define PMPI_Info_get_nthkey APMPI_Info_get_nthkey
987 #define MPI_Info_dup AMPI_Info_dup
988 #define PMPI_Info_dup APMPI_Info_dup
989 #define MPI_Info_free AMPI_Info_free
990 #define PMPI_Info_free APMPI_Info_free
993 #define MPIX_Grequest_start AMPIX_Grequest_start
994 #define PMPIX_Grequest_start APMPIX_Grequest_start
995 #define MPIX_Grequest_class_create AMPIX_Grequest_class_create
996 #define PMPIX_Grequest_class_create APMPIX_Grequest_class_create
997 #define MPIX_Grequest_class_allocate AMPIX_Grequest_class_allocate
998 #define PMPIX_Grequest_class_allocate APMPIX_Grequest_class_allocate
1000 #define MPI_Pack_external AMPI_Pack_external
1001 #define PMPI_Pack_external APMPI_Pack_external
1002 #define MPI_Pack_external_size AMPI_Pack_external_size
1003 #define PMPI_Pack_external_size APMPI_Pack_external_size
1004 #define MPI_Unpack_external AMPI_Unpack_external
1005 #define PMPI_Unpack_external APMPI_Unpack_external
1007 #define MPI_File_call_errhandler AMPI_File_call_errhandler
1008 #define PMPI_File_call_errhandler APMPI_File_call_errhandler
1009 #define MPI_File_create_errhandler AMPI_File_create_errhandler
1010 #define PMPI_File_create_errhandler APMPI_File_create_errhandler
1011 #define MPI_File_get_errhandler AMPI_File_get_errhandler
1012 #define PMPI_File_get_errhandler APMPI_File_get_errhandler
1013 #define MPI_File_set_errhandler AMPI_File_set_errhandler
1014 #define PMPI_File_set_errhandler APMPI_File_set_errhandler
1016 #define MPI_Close_port AMPI_Close_port
1017 #define PMPI_Close_port APMPI_Close_port
1018 #define MPI_Comm_accept AMPI_Comm_accept
1019 #define PMPI_Comm_accept APMPI_Comm_accept
1020 #define MPI_Comm_connect AMPI_Comm_connect
1021 #define PMPI_Comm_connect APMPI_Comm_connect
1022 #define MPI_Comm_disconnect AMPI_Comm_disconnect
1023 #define PMPI_Comm_disconnect APMPI_Comm_disconnect
1024 #define MPI_Comm_get_parent AMPI_Comm_get_parent
1025 #define PMPI_Comm_get_parent APMPI_Comm_get_parent
1026 #define MPI_Comm_join AMPI_Comm_join
1027 #define PMPI_Comm_join APMPI_Comm_join
1028 #define MPI_Comm_spawn_multiple AMPI_Comm_spawn_multiple
1029 #define PMPI_Comm_spawn_multiple APMPI_Comm_spawn_multiple
1030 #define MPI_Lookup_name AMPI_Lookup_name
1031 #define PMPI_Lookup_name APMPI_Lookup_name
1032 #define MPI_Open_port AMPI_Open_port
1033 #define PMPI_Open_port APMPI_Open_port
1034 #define MPI_Publish_name AMPI_Publish_name
1035 #define PMPI_Publish_name APMPI_Publish_name
1036 #define MPI_Unpublish_name AMPI_Unpublish_name
1037 #define PMPI_Unpublish_name APMPI_Unpublish_name
1038 #define MPI_Comm_spawn AMPI_Comm_spawn
1039 #define PMPI_Comm_spawn APMPI_Comm_spawn
1041 #define MPI_Win_allocate AMPI_Win_allocate
1042 #define PMPI_Win_allocate APMPI_Win_allocate
1043 #define MPI_Win_allocate_shared AMPI_Win_allocate_shared
1044 #define PMPI_Win_allocate_shared APMPI_Win_allocate_shared
1045 #define MPI_Win_attach AMPI_Win_attach
1046 #define PMPI_Win_attach APMPI_Win_attach
1047 #define MPI_Win_create_dynamic AMPI_Win_create_dynamic
1048 #define PMPI_Win_create_dynamic APMPI_Win_create_dynamic
1049 #define MPI_Win_detach AMPI_Win_detach
1050 #define PMPI_Win_detach APMPI_Win_detach
1051 #define MPI_Win_flush AMPI_Win_flush
1052 #define PMPI_Win_flush APMPI_Win_flush
1053 #define MPI_Win_flush_all AMPI_Win_flush_all
1054 #define PMPI_Win_flush_all APMPI_Win_flush_all
1055 #define MPI_Win_flush_local AMPI_Win_flush_local
1056 #define PMPI_Win_flush_local APMPI_Win_flush_local
1057 #define MPI_Win_flush_local_all AMPI_Win_flush_local_all
1058 #define PMPI_Win_flush_local_all APMPI_Win_flush_local_all
1059 #define MPI_Win_lock_all AMPI_Win_lock_all
1060 #define PMPI_Win_lock_all APMPI_Win_lock_all
1061 #define MPI_Win_shared_query AMPI_Win_shared_query
1062 #define PMPI_Win_shared_query APMPI_Win_shared_query
1063 #define MPI_Win_sync AMPI_Win_sync
1064 #define PMPI_Win_sync APMPI_Win_sync
1065 #define MPI_Win_unlock_all AMPI_Win_unlock_all
1066 #define PMPI_Win_unlock_all APMPI_Win_unlock_all
1068 #define MPI_CONVERSION_FN_NULL AMPI_CONVERSION_FN_NULL
1069 #define PMPI_CONVERSION_FN_NULL APMPI_CONVERSION_FN_NULL
1070 #define MPI_File_iread_all AMPI_File_iread_all
1071 #define PMPI_File_iread_all APMPI_File_iread_all
1072 #define MPI_File_iread_at_all AMPI_File_iread_at_all
1073 #define PMPI_File_iread_at_all APMPI_File_iread_at_all
1074 #define MPI_File_iwrite_all AMPI_File_iwrite_all
1075 #define PMPI_File_iwrite_all APMPI_File_iwrite_all
1076 #define MPI_File_iwrite_at_all AMPI_File_iwrite_at_all
1077 #define PMPI_File_iwrite_at_all APMPI_File_iwrite_at_all
1079 #define MPI_Status_f082f AMPI_Status_f082f
1080 #define PMPI_Status_f082f APMPI_Status_f082f
1081 #define MPI_Status_f2f08 AMPI_Status_f2f08
1082 #define PMPI_Status_f2f08 APMPI_Status_f2f08
1083 #define MPI_Type_create_f90_complex AMPI_Type_create_f90_complex
1084 #define PMPI_Type_create_f90_complex APMPI_Type_create_f90_complex
1085 #define MPI_Type_create_f90_integer AMPI_Type_create_f90_integer
1086 #define PMPI_Type_create_f90_integer APMPI_Type_create_f90_integer
1087 #define MPI_Type_create_f90_real AMPI_Type_create_f90_real
1088 #define PMPI_Type_create_f90_real APMPI_Type_create_f90_real
1089 #define MPI_Type_match_size AMPI_Type_match_size
1090 #define PMPI_Type_match_size APMPI_Type_match_size
1091 #define MPI_Message_c2f AMPI_Message_c2f
1092 #define PMPI_Message_c2f APMPI_Message_c2f
1093 #define MPI_Message_f2c AMPI_Message_f2c
1094 #define PMPI_Message_f2c APMPI_Message_f2c
1095 #define MPI_Status_c2f AMPI_Status_c2f
1096 #define PMPI_Status_c2f APMPI_Status_c2f
1097 #define MPI_Status_c2f08 AMPI_Status_c2f08
1098 #define PMPI_Status_c2f08 APMPI_Status_c2f08
1099 #define MPI_Status_f082c AMPI_Status_f082c
1100 #define PMPI_Status_f082c APMPI_Status_f082c
1101 #define MPI_Status_f2c AMPI_Status_f2c
1102 #define PMPI_Status_f2c APMPI_Status_f2c
1104 #define MPI_T_category_changed AMPI_T_category_changed
1105 #define PMPI_T_category_changed APMPI_T_category_changed
1106 #define MPI_T_category_get_categories AMPI_T_category_get_categories
1107 #define PMPI_T_category_get_categories APMPI_T_category_get_categories
1108 #define MPI_T_category_get_cvars AMPI_T_category_get_cvars
1109 #define PMPI_T_category_get_cvars APMPI_T_category_get_cvars
1110 #define MPI_T_category_get_index AMPI_T_category_get_index
1111 #define PMPI_T_category_get_index APMPI_T_category_get_index
1112 #define MPI_T_category_get_info AMPI_T_category_get_info
1113 #define PMPI_T_category_get_info APMPI_T_category_get_info
1114 #define MPI_T_category_get_num AMPI_T_category_get_num
1115 #define PMPI_T_category_get_num APMPI_T_category_get_num
1116 #define MPI_T_category_get_pvars AMPI_T_category_get_pvars
1117 #define PMPI_T_category_get_pvars APMPI_T_category_get_pvars
1118 #define MPI_T_cvar_get_index AMPI_T_cvar_get_index
1119 #define PMPI_T_cvar_get_index APMPI_T_cvar_get_index
1120 #define MPI_T_cvar_get_info AMPI_T_cvar_get_info
1121 #define PMPI_T_cvar_get_info APMPI_T_cvar_get_info
1122 #define MPI_T_cvar_get_num AMPI_T_cvar_get_num
1123 #define PMPI_T_cvar_get_num APMPI_T_cvar_get_num
1124 #define MPI_T_cvar_handle_alloc AMPI_T_cvar_handle_alloc
1125 #define PMPI_T_cvar_handle_alloc APMPI_T_cvar_handle_alloc
1126 #define MPI_T_cvar_handle_free AMPI_T_cvar_handle_free
1127 #define PMPI_T_cvar_handle_free APMPI_T_cvar_handle_free
1128 #define MPI_T_cvar_read AMPI_T_cvar_read
1129 #define PMPI_T_cvar_read APMPI_T_cvar_read
1130 #define MPI_T_cvar_write AMPI_T_cvar_write
1131 #define PMPI_T_cvar_write APMPI_T_cvar_write
1132 #define MPI_T_enum_get_info AMPI_T_enum_get_info
1133 #define PMPI_T_enum_get_info APMPI_T_enum_get_info
1134 #define MPI_T_enum_get_item AMPI_T_enum_get_item
1135 #define PMPI_T_enum_get_item APMPI_T_enum_get_item
1136 #define MPI_T_finalize AMPI_T_finalize
1137 #define PMPI_T_finalize APMPI_T_finalize
1138 #define MPI_T_init_thread AMPI_T_init_thread
1139 #define PMPI_T_init_thread APMPI_T_init_thread
1140 #define MPI_T_pvar_get_index AMPI_T_pvar_get_index
1141 #define PMPI_T_pvar_get_index APMPI_T_pvar_get_index
1142 #define MPI_T_pvar_get_info AMPI_T_pvar_get_info
1143 #define PMPI_T_pvar_get_info APMPI_T_pvar_get_info
1144 #define MPI_T_pvar_get_num AMPI_T_pvar_get_num
1145 #define PMPI_T_pvar_get_num APMPI_T_pvar_get_num
1146 #define MPI_T_pvar_handle_alloc AMPI_T_pvar_handle_alloc
1147 #define PMPI_T_pvar_handle_alloc APMPI_T_pvar_handle_alloc
1148 #define MPI_T_pvar_handle_free AMPI_T_pvar_handle_free
1149 #define PMPI_T_pvar_handle_free APMPI_T_pvar_handle_free
1150 #define MPI_T_pvar_read AMPI_T_pvar_read
1151 #define PMPI_T_pvar_read APMPI_T_pvar_read
1152 #define MPI_T_pvar_readreset AMPI_T_pvar_readreset
1153 #define PMPI_T_pvar_readreset APMPI_T_pvar_readreset
1154 #define MPI_T_pvar_reset AMPI_T_pvar_reset
1155 #define PMPI_T_pvar_reset APMPI_T_pvar_reset
1156 #define MPI_T_pvar_session_create AMPI_T_pvar_session_create
1157 #define PMPI_T_pvar_session_create APMPI_T_pvar_session_create
1158 #define MPI_T_pvar_session_free AMPI_T_pvar_session_free
1159 #define PMPI_T_pvar_session_free APMPI_T_pvar_session_free
1160 #define MPI_T_pvar_start AMPI_T_pvar_start
1161 #define PMPI_T_pvar_start APMPI_T_pvar_start
1162 #define MPI_T_pvar_stop AMPI_T_pvar_stop
1163 #define PMPI_T_pvar_stop APMPI_T_pvar_stop
1164 #define MPI_T_pvar_write AMPI_T_pvar_write
1165 #define PMPI_T_pvar_write APMPI_T_pvar_write
1167 #endif //CMK_CONVERSE_MPI
1170 AMPI_API_DEF(int, MPI_Send
, const void *msg
, int count
, MPI_Datatype type
, int dest
,
1171 int tag
, MPI_Comm comm
)
1172 AMPI_API_DEF(int, MPI_Ssend
, const void *msg
, int count
, MPI_Datatype type
, int dest
,
1173 int tag
, MPI_Comm comm
)
1174 AMPI_API_DEF(int, MPI_Recv
, void *msg
, int count
, MPI_Datatype type
, int src
, int tag
,
1175 MPI_Comm comm
, MPI_Status
*status
)
1176 AMPI_API_DEF(int, MPI_Mrecv
, void* buf
, int count
, MPI_Datatype datatype
, MPI_Message
*message
,
1178 AMPI_API_DEF(int, MPI_Get_count
, const MPI_Status
*sts
, MPI_Datatype dtype
, int *count
)
1179 AMPI_API_DEF(int, MPI_Bsend
, const void *buf
, int count
, MPI_Datatype datatype
,
1180 int dest
, int tag
,MPI_Comm comm
)
1181 AMPI_API_DEF(int, MPI_Rsend
, const void *buf
, int count
, MPI_Datatype datatype
,
1182 int dest
, int tag
,MPI_Comm comm
)
1183 AMPI_API_DEF(int, MPI_Buffer_attach
, void *buffer
, int size
)
1184 AMPI_API_DEF(int, MPI_Buffer_detach
, void *buffer
, int *size
)
1185 AMPI_API_DEF(int, MPI_Isend
, const void *buf
, int count
, MPI_Datatype datatype
, int dest
,
1186 int tag
, MPI_Comm comm
, MPI_Request
*request
)
1187 AMPI_API_DEF(int, MPI_Ibsend
, const void *buf
, int count
, MPI_Datatype datatype
, int dest
,
1188 int tag
, MPI_Comm comm
, MPI_Request
*request
)
1189 AMPI_API_DEF(int, MPI_Issend
, const void *buf
, int count
, MPI_Datatype datatype
, int dest
,
1190 int tag
, MPI_Comm comm
, MPI_Request
*request
)
1191 AMPI_API_DEF(int, MPI_Irsend
, const void *buf
, int count
, MPI_Datatype datatype
, int dest
,
1192 int tag
, MPI_Comm comm
, MPI_Request
*request
)
1193 AMPI_API_DEF(int, MPI_Irecv
, void *buf
, int count
, MPI_Datatype datatype
, int src
,
1194 int tag
, MPI_Comm comm
, MPI_Request
*request
)
1195 AMPI_API_DEF(int, MPI_Imrecv
, void* buf
, int count
, MPI_Datatype datatype
, MPI_Message
*message
,
1196 MPI_Request
*request
)
1197 AMPI_API_DEF(int, MPI_Wait
, MPI_Request
*request
, MPI_Status
*sts
)
1198 AMPI_API_DEF(int, MPI_Test
, MPI_Request
*request
, int *flag
, MPI_Status
*sts
)
1199 AMPI_API_DEF(int, MPI_Waitany
, int count
, MPI_Request
*request
, int *index
, MPI_Status
*sts
)
1200 AMPI_API_DEF(int, MPI_Testany
, int count
, MPI_Request
*request
, int *index
, int *flag
, MPI_Status
*status
)
1201 AMPI_API_DEF(int, MPI_Waitall
, int count
, MPI_Request
*request
, MPI_Status
*sts
)
1202 AMPI_API_DEF(int, MPI_Testall
, int count
, MPI_Request
*request
, int *flag
, MPI_Status
*sts
)
1203 AMPI_API_DEF(int, MPI_Waitsome
, int incount
, MPI_Request
*array_of_requests
, int *outcount
,
1204 int *array_of_indices
, MPI_Status
*array_of_statuses
)
1205 AMPI_API_DEF(int, MPI_Testsome
, int incount
, MPI_Request
*array_of_requests
, int *outcount
,
1206 int *array_of_indices
, MPI_Status
*array_of_statuses
)
1207 AMPI_API_DEF(int, MPI_Request_get_status
, MPI_Request request
, int *flag
, MPI_Status
*sts
)
1208 AMPI_API_DEF(int, MPI_Request_free
, MPI_Request
*request
)
1209 AMPI_API_DEF(int, MPI_Grequest_start
, MPI_Grequest_query_function
*query_fn
, MPI_Grequest_free_function
*free_fn
,\
1210 MPI_Grequest_cancel_function
*cancel_fn
, void *extra_state
, MPI_Request
*request
)
1211 AMPI_API_DEF(int, MPI_Grequest_complete
, MPI_Request request
)
1212 AMPI_API_DEF(int, MPI_Cancel
, MPI_Request
*request
)
1213 AMPI_API_DEF(int, MPI_Test_cancelled
, const MPI_Status
*status
, int *flag
) /* FIXME: always returns success */
1214 AMPI_API_DEF(int, MPI_Status_set_cancelled
, MPI_Status
*status
, int flag
)
1215 AMPI_API_DEF(int, MPI_Iprobe
, int src
, int tag
, MPI_Comm comm
, int *flag
, MPI_Status
*sts
)
1216 AMPI_API_DEF(int, MPI_Probe
, int source
, int tag
, MPI_Comm comm
, MPI_Status
*sts
)
1217 AMPI_API_DEF(int, MPI_Improbe
, int source
, int tag
, MPI_Comm comm
, int *flag
,
1218 MPI_Message
*message
, MPI_Status
*status
)
1219 AMPI_API_DEF(int, MPI_Mprobe
, int source
, int tag
, MPI_Comm comm
, MPI_Message
*message
,
1221 AMPI_API_DEF(int, MPI_Send_init
, const void *buf
, int count
, MPI_Datatype type
, int dest
, int tag
,
1222 MPI_Comm comm
, MPI_Request
*req
)
1223 AMPI_API_DEF(int, MPI_Ssend_init
, const void *buf
, int count
, MPI_Datatype type
, int dest
, int tag
,
1224 MPI_Comm comm
, MPI_Request
*req
)
1225 AMPI_API_DEF(int, MPI_Rsend_init
, const void *buf
, int count
, MPI_Datatype type
, int dest
, int tag
,
1226 MPI_Comm comm
, MPI_Request
*req
)
1227 AMPI_API_DEF(int, MPI_Bsend_init
, const void *buf
, int count
, MPI_Datatype type
, int dest
, int tag
,
1228 MPI_Comm comm
, MPI_Request
*req
)
1229 AMPI_API_DEF(int, MPI_Recv_init
, void *buf
, int count
, MPI_Datatype type
, int src
, int tag
,
1230 MPI_Comm comm
, MPI_Request
*req
)
1231 AMPI_API_DEF(int, MPI_Start
, MPI_Request
*reqnum
)
1232 AMPI_API_DEF(int, MPI_Startall
, int count
, MPI_Request
*array_of_requests
)
1233 AMPI_API_DEF(int, MPI_Sendrecv
, const void *sbuf
, int scount
, MPI_Datatype stype
, int dest
,
1234 int stag
, void *rbuf
, int rcount
, MPI_Datatype rtype
,
1235 int src
, int rtag
, MPI_Comm comm
, MPI_Status
*sts
)
1236 AMPI_API_DEF(int, MPI_Sendrecv_replace
, void* buf
, int count
, MPI_Datatype datatype
,
1237 int dest
, int sendtag
, int source
, int recvtag
,
1238 MPI_Comm comm
, MPI_Status
*status
)
1241 AMPI_API_DEF(int, MPI_Type_contiguous
, int count
, MPI_Datatype oldtype
,
1242 MPI_Datatype
*newtype
)
1243 AMPI_API_DEF(int, MPI_Type_vector
, int count
, int blocklength
, int stride
,
1244 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1245 AMPI_API_DEF(int, MPI_Type_create_hvector
, int count
, int blocklength
, MPI_Aint stride
,
1246 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1247 AMPI_API_DEF(int, MPI_Type_hvector
, int count
, int blocklength
, MPI_Aint stride
,
1248 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1249 AMPI_API_DEF(int, MPI_Type_indexed
, int count
, const int* arrBlength
, const int* arrDisp
,
1250 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1251 AMPI_API_DEF(int, MPI_Type_create_hindexed
, int count
, const int* arrBlength
, const MPI_Aint
* arrDisp
,
1252 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1253 AMPI_API_DEF(int, MPI_Type_create_indexed_block
, int count
, int Blength
, const int *arrDisp
,
1254 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1255 AMPI_API_DEF(int, MPI_Type_create_hindexed_block
, int count
, int Blength
, const MPI_Aint
*arrDisp
,
1256 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1257 AMPI_API_DEF(int, MPI_Type_hindexed
, int count
, int* arrBlength
, MPI_Aint
* arrDisp
,
1258 MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1259 AMPI_API_DEF(int, MPI_Type_create_struct
, int count
, const int* arrBLength
, const MPI_Aint
* arrDisp
,
1260 const MPI_Datatype
*oldType
, MPI_Datatype
*newType
)
1261 AMPI_API_DEF(int, MPI_Type_struct
, int count
, int* arrBLength
, MPI_Aint
* arrDisp
,
1262 MPI_Datatype
*oldType
, MPI_Datatype
*newType
)
1263 AMPI_API_DEF(int, MPI_Type_get_envelope
, MPI_Datatype datatype
, int *num_integers
, int *num_addresses
,
1264 int *num_datatypes
, int *combiner
)
1265 AMPI_API_DEF(int, MPI_Type_get_contents
, MPI_Datatype datatype
, int max_integers
, int max_addresses
,
1266 int max_datatypes
, int array_of_integers
[], MPI_Aint array_of_addresses
[],
1267 MPI_Datatype array_of_datatypes
[])
1268 AMPI_API_DEF(int, MPI_Type_commit
, MPI_Datatype
*datatype
)
1269 AMPI_API_DEF(int, MPI_Type_free
, MPI_Datatype
*datatype
)
1270 AMPI_API_DEF(int, MPI_Type_get_extent
, MPI_Datatype datatype
, MPI_Aint
*lb
, MPI_Aint
*extent
)
1271 AMPI_API_DEF(int, MPI_Type_get_extent_x
, MPI_Datatype datatype
, MPI_Count
*lb
, MPI_Count
*extent
)
1272 AMPI_API_DEF(int, MPI_Type_extent
, MPI_Datatype datatype
, MPI_Aint
*extent
)
1273 AMPI_API_DEF(int, MPI_Type_get_true_extent
, MPI_Datatype datatype
, MPI_Aint
*true_lb
, MPI_Aint
*true_extent
)
1274 AMPI_API_DEF(int, MPI_Type_get_true_extent_x
, MPI_Datatype datatype
, MPI_Count
*true_lb
, MPI_Count
*true_extent
)
1275 AMPI_API_DEF(int, MPI_Type_size
, MPI_Datatype datatype
, int *size
)
1276 AMPI_API_DEF(int, MPI_Type_size_x
, MPI_Datatype datatype
, MPI_Count
*size
)
1277 AMPI_API_DEF(int, MPI_Type_lb
, MPI_Datatype datatype
, MPI_Aint
* displacement
)
1278 AMPI_API_DEF(int, MPI_Type_ub
, MPI_Datatype datatype
, MPI_Aint
* displacement
)
1279 AMPI_API_DEF(int, MPI_Type_set_name
, MPI_Datatype datatype
, const char *name
)
1280 AMPI_API_DEF(int, MPI_Type_get_name
, MPI_Datatype datatype
, char *name
, int *resultlen
)
1281 AMPI_API_DEF(int, MPI_Type_dup
, MPI_Datatype oldtype
, MPI_Datatype
*newtype
)
1282 AMPI_API_DEF(int, MPI_Type_create_resized
, MPI_Datatype oldtype
, MPI_Aint lb
, MPI_Aint extent
, MPI_Datatype
*newtype
)
1283 AMPI_API_DEF(int, MPI_Type_set_attr
, MPI_Datatype datatype
, int type_keyval
, void *attribute_val
)
1284 AMPI_API_DEF(int, MPI_Type_get_attr
, MPI_Datatype datatype
, int type_keyval
, void *attribute_val
, int *flag
)
1285 AMPI_API_DEF(int, MPI_Type_delete_attr
, MPI_Datatype datatype
, int type_keyval
)
1286 AMPI_API_DEF(int, MPI_Type_create_keyval
, MPI_Type_copy_attr_function
*type_copy_attr_fn
,
1287 MPI_Type_delete_attr_function
*type_delete_attr_fn
,
1288 int *type_keyval
, void *extra_state
)
1289 AMPI_API_DEF(int, MPI_Type_free_keyval
, int *type_keyval
)
1290 AMPI_API_DEF(int, MPI_Get_address
, const void* location
, MPI_Aint
*address
)
1291 AMPI_API_DEF(int, MPI_Address
, void* location
, MPI_Aint
*address
)
1292 AMPI_API_DEF(int, MPI_Status_set_elements
, MPI_Status
*status
, MPI_Datatype datatype
, int count
)
1293 AMPI_API_DEF(int, MPI_Status_set_elements_x
, MPI_Status
*status
, MPI_Datatype datatype
, MPI_Count count
)
1294 AMPI_API_DEF(int, MPI_Get_elements
, const MPI_Status
*status
, MPI_Datatype datatype
, int *count
)
1295 AMPI_API_DEF(int, MPI_Get_elements_x
, const MPI_Status
*status
, MPI_Datatype datatype
, MPI_Count
*count
)
1296 AMPI_API_DEF(int, MPI_Pack
, const void *inbuf
, int incount
, MPI_Datatype dtype
, void *outbuf
,
1297 int outsize
, int *position
, MPI_Comm comm
)
1298 AMPI_API_DEF(int, MPI_Unpack
, const void *inbuf
, int insize
, int *position
, void *outbuf
,
1299 int outcount
, MPI_Datatype dtype
, MPI_Comm comm
)
1300 AMPI_API_DEF(int, MPI_Pack_size
, int incount
,MPI_Datatype datatype
,MPI_Comm comm
,int *sz
)
1301 #define MPI_Aint_add(addr, disp) ((MPI_Aint)((char*)(addr) + (disp)))
1302 #define MPI_Aint_diff(addr1, addr2) ((MPI_Aint)((char*)(addr1) - (char*)(addr2)))
1305 AMPI_API_DEF(int, MPI_Barrier
, MPI_Comm comm
)
1306 AMPI_API_DEF(int, MPI_Ibarrier
, MPI_Comm comm
, MPI_Request
*request
)
1307 AMPI_API_DEF(int, MPI_Bcast
, void *buf
, int count
, MPI_Datatype type
, int root
, MPI_Comm comm
)
1308 AMPI_API_DEF(int, MPI_Ibcast
, void *buf
, int count
, MPI_Datatype type
, int root
, MPI_Comm comm
,
1309 MPI_Request
*request
)
1310 AMPI_API_DEF(int, MPI_Gather
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1311 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1312 int root
, MPI_Comm comm
)
1313 AMPI_API_DEF(int, MPI_Igather
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1314 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1315 int root
, MPI_Comm comm
, MPI_Request
*request
)
1316 AMPI_API_DEF(int, MPI_Gatherv
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1317 void *recvbuf
, const int *recvcounts
, const int *displs
,
1318 MPI_Datatype recvtype
, int root
, MPI_Comm comm
)
1319 AMPI_API_DEF(int, MPI_Igatherv
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1320 void *recvbuf
, const int *recvcounts
, const int *displs
,
1321 MPI_Datatype recvtype
, int root
, MPI_Comm comm
,
1322 MPI_Request
*request
)
1323 AMPI_API_DEF(int, MPI_Scatter
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1324 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1325 int root
, MPI_Comm comm
)
1326 AMPI_API_DEF(int, MPI_Iscatter
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1327 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1328 int root
, MPI_Comm comm
, MPI_Request
*request
)
1329 AMPI_API_DEF(int, MPI_Scatterv
, const void *sendbuf
, const int *sendcounts
, const int *displs
, MPI_Datatype sendtype
,
1330 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1331 int root
, MPI_Comm comm
)
1332 AMPI_API_DEF(int, MPI_Iscatterv
, const void *sendbuf
, const int *sendcounts
, const int *displs
, MPI_Datatype sendtype
,
1333 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1334 int root
, MPI_Comm comm
, MPI_Request
*request
)
1335 AMPI_API_DEF(int, MPI_Allgather
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1336 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1338 AMPI_API_DEF(int, MPI_Iallgather
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1339 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1340 MPI_Comm comm
, MPI_Request
* request
)
1341 AMPI_API_DEF(int, MPI_Allgatherv
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1342 void *recvbuf
, const int *recvcounts
, const int *displs
,
1343 MPI_Datatype recvtype
, MPI_Comm comm
)
1344 AMPI_API_DEF(int, MPI_Iallgatherv
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1345 void *recvbuf
, const int *recvcounts
, const int *displs
,
1346 MPI_Datatype recvtype
, MPI_Comm comm
, MPI_Request
*request
)
1347 AMPI_API_DEF(int, MPI_Alltoall
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1348 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1350 AMPI_API_DEF(int, MPI_Ialltoall
, const void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1351 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1352 MPI_Comm comm
, MPI_Request
*request
)
1353 AMPI_API_DEF(int, MPI_Alltoallv
, const void *sendbuf
, const int *sendcounts
, const int *sdispls
,
1354 MPI_Datatype sendtype
, void *recvbuf
, const int *recvcounts
,
1355 const int *rdispls
, MPI_Datatype recvtype
, MPI_Comm comm
)
1356 AMPI_API_DEF(int, MPI_Ialltoallv
, void *sendbuf
, int *sendcounts
, int *sdispls
,
1357 MPI_Datatype sendtype
, void *recvbuf
, int *recvcounts
,
1358 int *rdispls
, MPI_Datatype recvtype
, MPI_Comm comm
,
1359 MPI_Request
*request
)
1360 AMPI_API_DEF(int, MPI_Alltoallw
, const void *sendbuf
, const int *sendcounts
, const int *sdispls
,
1361 const MPI_Datatype
*sendtypes
, void *recvbuf
, const int *recvcounts
,
1362 const int *rdispls
, const MPI_Datatype
*recvtypes
, MPI_Comm comm
)
1363 AMPI_API_DEF(int, MPI_Ialltoallw
, const void *sendbuf
, const int *sendcounts
, const int *sdispls
,
1364 const MPI_Datatype
*sendtypes
, void *recvbuf
, const int *recvcounts
,
1365 const int *rdispls
, const MPI_Datatype
*recvtypes
, MPI_Comm comm
,
1366 MPI_Request
*request
)
1367 AMPI_API_DEF(int, MPI_Reduce
, const void *inbuf
, void *outbuf
, int count
, MPI_Datatype type
,
1368 MPI_Op op
, int root
, MPI_Comm comm
)
1369 AMPI_API_DEF(int, MPI_Ireduce
, const void *sendbuf
, void *recvbuf
, int count
, MPI_Datatype type
,
1370 MPI_Op op
, int root
, MPI_Comm comm
, MPI_Request
*request
)
1371 AMPI_API_DEF(int, MPI_Allreduce
, const void *inbuf
, void *outbuf
, int count
, MPI_Datatype type
,
1372 MPI_Op op
, MPI_Comm comm
)
1373 AMPI_API_DEF(int, MPI_Iallreduce
, const void *inbuf
, void *outbuf
, int count
, MPI_Datatype type
,
1374 MPI_Op op
, MPI_Comm comm
, MPI_Request
*request
)
1375 AMPI_API_DEF(int, MPI_Reduce_local
, const void *inbuf
, void *outbuf
, int count
,
1376 MPI_Datatype datatype
, MPI_Op op
)
1377 AMPI_API_DEF(int, MPI_Reduce_scatter_block
, const void* sendbuf
, void* recvbuf
, int count
,
1378 MPI_Datatype datatype
, MPI_Op op
, MPI_Comm comm
)
1379 AMPI_API_DEF(int, MPI_Ireduce_scatter_block
, const void* sendbuf
, void* recvbuf
, int count
,
1380 MPI_Datatype datatype
, MPI_Op op
, MPI_Comm comm
, MPI_Request
*request
)
1381 AMPI_API_DEF(int, MPI_Reduce_scatter
, const void* sendbuf
, void* recvbuf
, const int *recvcounts
,
1382 MPI_Datatype datatype
, MPI_Op op
, MPI_Comm comm
)
1383 AMPI_API_DEF(int, MPI_Ireduce_scatter
, const void* sendbuf
, void* recvbuf
, const int *recvcounts
,
1384 MPI_Datatype datatype
, MPI_Op op
, MPI_Comm comm
, MPI_Request
*request
)
1385 AMPI_API_DEF(int, MPI_Scan
, const void* sendbuf
, void* recvbuf
, int count
, MPI_Datatype datatype
,
1386 MPI_Op op
, MPI_Comm comm
)
1387 AMPI_API_DEF(int, MPI_Iscan
, const void* sendbuf
, void* recvbuf
, int count
, MPI_Datatype datatype
,
1388 MPI_Op op
, MPI_Comm comm
, MPI_Request
*request
)
1389 AMPI_API_DEF(int, MPI_Exscan
, const void* sendbuf
, void* recvbuf
, int count
, MPI_Datatype datatype
,
1390 MPI_Op op
, MPI_Comm comm
)
1391 AMPI_API_DEF(int, MPI_Iexscan
, const void* sendbuf
, void* recvbuf
, int count
, MPI_Datatype datatype
,
1392 MPI_Op op
, MPI_Comm comm
, MPI_Request
*request
)
1394 /***neighborhood collectives***/
1395 AMPI_API_DEF(int, MPI_Neighbor_alltoall
, const void* sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1396 void* recvbuf
, int recvcount
, MPI_Datatype recvtype
, MPI_Comm comm
)
1397 AMPI_API_DEF(int, MPI_Ineighbor_alltoall
, const void* sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1398 void* recvbuf
, int recvcount
, MPI_Datatype recvtype
, MPI_Comm comm
,
1399 MPI_Request
* request
)
1400 AMPI_API_DEF(int, MPI_Neighbor_alltoallv
, const void* sendbuf
, const int* sendcounts
, const int* sdispls
,
1401 MPI_Datatype sendtype
, void* recvbuf
, const int* recvcounts
, const int* rdispls
,
1402 MPI_Datatype recvtype
, MPI_Comm comm
)
1403 AMPI_API_DEF(int, MPI_Ineighbor_alltoallv
, const void* sendbuf
, const int* sendcounts
, const int* sdispls
,
1404 MPI_Datatype sendtype
, void* recvbuf
, const int* recvcounts
, const int* rdispls
,
1405 MPI_Datatype recvtype
, MPI_Comm comm
, MPI_Request
* request
)
1406 AMPI_API_DEF(int, MPI_Neighbor_alltoallw
, const void* sendbuf
, const int* sendcounts
, const MPI_Aint
* sdipls
,
1407 const MPI_Datatype
* sendtypes
, void* recvbuf
, const int* recvcounts
, const MPI_Aint
* rdispls
,
1408 const MPI_Datatype
* recvtypes
, MPI_Comm comm
)
1409 AMPI_API_DEF(int, MPI_Ineighbor_alltoallw
, const void* sendbuf
, const int* sendcounts
, const MPI_Aint
* sdispls
,
1410 const MPI_Datatype
* sendtypes
, void* recvbuf
, const int* recvcounts
, const MPI_Aint
* rdispls
,
1411 const MPI_Datatype
* recvtypes
, MPI_Comm comm
, MPI_Request
* request
)
1412 AMPI_API_DEF(int, MPI_Neighbor_allgather
, const void* sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1413 void* recvbuf
, int recvcount
, MPI_Datatype recvtype
, MPI_Comm comm
)
1414 AMPI_API_DEF(int, MPI_Ineighbor_allgather
, const void* sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1415 void* recvbuf
, int recvcount
, MPI_Datatype recvtype
, MPI_Comm comm
,
1416 MPI_Request
*request
)
1417 AMPI_API_DEF(int, MPI_Neighbor_allgatherv
, const void* sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1418 void* recvbuf
, const int* recvcounts
, const int* displs
, MPI_Datatype recvtype
,
1420 AMPI_API_DEF(int, MPI_Ineighbor_allgatherv
, const void* sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1421 void* recvbuf
, const int* recvcounts
, const int* displs
, MPI_Datatype recvtype
,
1422 MPI_Comm comm
, MPI_Request
*request
)
1425 AMPI_API_DEF(int, MPI_Op_create
, MPI_User_function
*function
, int commute
, MPI_Op
*op
)
1426 AMPI_API_DEF(int, MPI_Op_free
, MPI_Op
*op
)
1427 AMPI_API_DEF(int, MPI_Op_commutative
, MPI_Op op
, int* commute
)
1430 AMPI_API_DEF(int, MPI_Group_size
, MPI_Group group
, int *size
)
1431 AMPI_API_DEF(int, MPI_Group_rank
, MPI_Group group
, int *rank
)
1432 AMPI_API_DEF(int, MPI_Group_translate_ranks
, MPI_Group group1
, int n
, const int *ranks1
, MPI_Group group2
, int *ranks2
)
1433 AMPI_API_DEF(int, MPI_Group_compare
, MPI_Group group1
,MPI_Group group2
, int *result
)
1434 AMPI_API_DEF(int, MPI_Comm_group
, MPI_Comm comm
, MPI_Group
*group
)
1435 AMPI_API_DEF(int, MPI_Group_union
, MPI_Group group1
, MPI_Group group2
, MPI_Group
*newgroup
)
1436 AMPI_API_DEF(int, MPI_Group_intersection
, MPI_Group group1
, MPI_Group group2
, MPI_Group
*newgroup
)
1437 AMPI_API_DEF(int, MPI_Group_difference
, MPI_Group group1
, MPI_Group group2
, MPI_Group
*newgroup
)
1438 AMPI_API_DEF(int, MPI_Group_incl
, MPI_Group group
, int n
, const int *ranks
, MPI_Group
*newgroup
)
1439 AMPI_API_DEF(int, MPI_Group_excl
, MPI_Group group
, int n
, const int *ranks
, MPI_Group
*newgroup
)
1440 AMPI_API_DEF(int, MPI_Group_range_incl
, MPI_Group group
, int n
, int ranges
[][3], MPI_Group
*newgroup
)
1441 AMPI_API_DEF(int, MPI_Group_range_excl
, MPI_Group group
, int n
, int ranges
[][3], MPI_Group
*newgroup
)
1442 AMPI_API_DEF(int, MPI_Group_free
, MPI_Group
*group
)
1444 /***communicators***/
1445 AMPI_API_DEF(int, MPI_Intercomm_create
, MPI_Comm local_comm
, int local_leader
, MPI_Comm peer_comm
,
1446 int remote_leader
, int tag
, MPI_Comm
*newintercomm
)
1447 AMPI_API_DEF(int, MPI_Intercomm_merge
, MPI_Comm intercomm
, int high
, MPI_Comm
*newintracomm
)
1448 AMPI_API_DEF(int, MPI_Comm_create
, MPI_Comm comm
, MPI_Group group
, MPI_Comm
* newcomm
)
1449 AMPI_API_DEF(int, MPI_Comm_create_group
, MPI_Comm comm
, MPI_Group group
, int tag
, MPI_Comm
*newcomm
)
1450 AMPI_API_DEF(int, MPI_Comm_size
, MPI_Comm comm
, int *size
)
1451 AMPI_API_DEF(int, MPI_Comm_rank
, MPI_Comm comm
, int *rank
)
1452 AMPI_API_DEF(int, MPI_Comm_compare
, MPI_Comm comm1
,MPI_Comm comm2
, int *result
)
1453 AMPI_API_DEF(int, MPI_Comm_split
, MPI_Comm src
, int color
, int key
, MPI_Comm
*dest
)
1454 AMPI_API_DEF(int, MPI_Comm_split_type
, MPI_Comm src
, int split_type
, int key
, MPI_Info info
, MPI_Comm
*dest
)
1455 AMPI_API_DEF(int, MPI_Comm_dup
, MPI_Comm src
, MPI_Comm
*dest
)
1456 AMPI_API_DEF(int, MPI_Comm_idup
, MPI_Comm comm
, MPI_Comm
*newcomm
, MPI_Request
*request
)
1457 AMPI_API_DEF(int, MPI_Comm_dup_with_info
, MPI_Comm src
, MPI_Info info
, MPI_Comm
*dest
)
1458 AMPI_API_DEF(int, MPI_Comm_idup_with_info
, MPI_Comm src
, MPI_Info info
, MPI_Comm
*dest
, MPI_Request
*request
)
1459 AMPI_API_DEF(int, MPI_Comm_free
, MPI_Comm
*comm
)
1460 AMPI_API_DEF(int, MPI_Comm_test_inter
, MPI_Comm comm
, int *flag
)
1461 AMPI_API_DEF(int, MPI_Comm_remote_size
, MPI_Comm comm
, int *size
)
1462 AMPI_API_DEF(int, MPI_Comm_remote_group
, MPI_Comm comm
, MPI_Group
*group
)
1463 AMPI_API_DEF(int, MPI_Comm_set_name
, MPI_Comm comm
, const char *name
)
1464 AMPI_API_DEF(int, MPI_Comm_get_name
, MPI_Comm comm
, char *comm_name
, int *resultlen
)
1465 AMPI_API_DEF(int, MPI_Comm_set_info
, MPI_Comm comm
, MPI_Info info
)
1466 AMPI_API_DEF(int, MPI_Comm_get_info
, MPI_Comm comm
, MPI_Info
*info
)
1467 AMPI_API_DEF(int, MPI_Comm_call_errhandler
, MPI_Comm comm
, int errorcode
)
1468 AMPI_API_DEF(int, MPI_Comm_create_errhandler
, MPI_Comm_errhandler_fn
*function
, MPI_Errhandler
*errhandler
)
1469 AMPI_API_DEF(int, MPI_Comm_set_errhandler
, MPI_Comm comm
, MPI_Errhandler errhandler
)
1470 AMPI_API_DEF(int, MPI_Comm_get_errhandler
, MPI_Comm comm
, MPI_Errhandler
*errhandler
)
1471 AMPI_API_DEF(int, MPI_Comm_free_errhandler
, MPI_Errhandler
*errhandler
)
1472 AMPI_API_DEF(int, MPI_Comm_create_keyval
, MPI_Comm_copy_attr_function
*copy_fn
, MPI_Comm_delete_attr_function
*delete_fn
,
1473 int *keyval
, void* extra_state
)
1474 AMPI_API_DEF(int, MPI_Comm_free_keyval
, int *keyval
)
1475 AMPI_API_DEF(int, MPI_Comm_set_attr
, MPI_Comm comm
, int keyval
, void* attribute_val
)
1476 AMPI_API_DEF(int, MPI_Comm_get_attr
, MPI_Comm comm
, int keyval
, void *attribute_val
, int *flag
)
1477 AMPI_API_DEF(int, MPI_Comm_delete_attr
, MPI_Comm comm
, int keyval
)
1479 /***keyvals/attributes***/
1480 AMPI_API_DEF(int, MPI_Keyval_create
, MPI_Copy_function
*copy_fn
, MPI_Delete_function
*delete_fn
,
1481 int *keyval
, void* extra_state
)
1482 AMPI_API_DEF(int, MPI_Keyval_free
, int *keyval
)
1483 AMPI_API_DEF(int, MPI_Attr_put
, MPI_Comm comm
, int keyval
, void* attribute_val
)
1484 AMPI_API_DEF(int, MPI_Attr_get
, MPI_Comm comm
, int keyval
, void *attribute_val
, int *flag
)
1485 AMPI_API_DEF(int, MPI_Attr_delete
, MPI_Comm comm
, int keyval
)
1488 AMPI_API_DEF(int, MPI_Cart_create
, MPI_Comm comm_old
, int ndims
, const int *dims
,
1489 const int *periods
, int reorder
, MPI_Comm
*comm_cart
)
1490 AMPI_API_DEF(int, MPI_Graph_create
, MPI_Comm comm_old
, int nnodes
, const int *index
,
1491 const int *edges
, int reorder
, MPI_Comm
*comm_graph
)
1492 AMPI_API_DEF(int, MPI_Dist_graph_create_adjacent
, MPI_Comm comm_old
, int indegree
, const int sources
[],
1493 const int sourceweights
[], int outdegree
,
1494 const int destinations
[], const int destweights
[],
1495 MPI_Info info
, int reorder
, MPI_Comm
*comm_dist_graph
)
1496 AMPI_API_DEF(int, MPI_Dist_graph_create
, MPI_Comm comm_old
, int n
, const int sources
[], const int degrees
[],
1497 const int destintations
[], const int weights
[], MPI_Info info
,
1498 int reorder
, MPI_Comm
*comm_dist_graph
)
1499 AMPI_API_DEF(int, MPI_Topo_test
, MPI_Comm comm
, int *status
)
1500 AMPI_API_DEF(int, MPI_Cart_map
, MPI_Comm comm
, int ndims
, const int *dims
, const int *periods
,
1502 AMPI_API_DEF(int, MPI_Graph_map
, MPI_Comm comm
, int nnodes
, const int *index
, const int *edges
,
1504 AMPI_API_DEF(int, MPI_Cartdim_get
, MPI_Comm comm
, int *ndims
)
1505 AMPI_API_DEF(int, MPI_Cart_get
, MPI_Comm comm
, int maxdims
, int *dims
, int *periods
, int *coords
)
1506 AMPI_API_DEF(int, MPI_Cart_rank
, MPI_Comm comm
, const int *coords
, int *rank
)
1507 AMPI_API_DEF(int, MPI_Cart_coords
, MPI_Comm comm
, int rank
, int maxdims
, int *coords
)
1508 AMPI_API_DEF(int, MPI_Cart_shift
, MPI_Comm comm
, int direction
, int disp
, int *rank_source
, int *rank_dest
)
1509 AMPI_API_DEF(int, MPI_Graphdims_get
, MPI_Comm comm
, int *nnodes
, int *nedges
)
1510 AMPI_API_DEF(int, MPI_Graph_get
, MPI_Comm comm
, int maxindex
, int maxedges
, int *index
, int *edges
)
1511 AMPI_API_DEF(int, MPI_Graph_neighbors_count
, MPI_Comm comm
, int rank
, int *nneighbors
)
1512 AMPI_API_DEF(int, MPI_Graph_neighbors
, MPI_Comm comm
, int rank
, int maxneighbors
, int *neighbors
)
1513 AMPI_API_DEF(int, MPI_Dims_create
, int nnodes
, int ndims
, int *dims
)
1514 AMPI_API_DEF(int, MPI_Cart_sub
, MPI_Comm comm
, const int *remain_dims
, MPI_Comm
*newcomm
)
1515 AMPI_API_DEF(int, MPI_Dist_graph_neighbors
, MPI_Comm comm
, int maxindegree
, int sources
[], int sourceweights
[],
1516 int maxoutdegree
, int destinations
[], int destweights
[])
1517 AMPI_API_DEF(int, MPI_Dist_graph_neighbors_count
, MPI_Comm comm
, int *indegree
, int *outdegree
, int *weighted
)
1519 /***environment management***/
1520 AMPI_API_DEF(int, MPI_Errhandler_create
, MPI_Handler_function
*function
, MPI_Errhandler
*errhandler
)
1521 AMPI_API_DEF(int, MPI_Errhandler_set
, MPI_Comm comm
, MPI_Errhandler errhandler
)
1522 AMPI_API_DEF(int, MPI_Errhandler_get
, MPI_Comm comm
, MPI_Errhandler
*errhandler
)
1523 AMPI_API_DEF(int, MPI_Errhandler_free
, MPI_Errhandler
*errhandler
)
1524 AMPI_API_DEF(int, MPI_Add_error_code
, int errorclass
, int *errorcode
)
1525 AMPI_API_DEF(int, MPI_Add_error_class
, int *errorclass
)
1526 AMPI_API_DEF(int, MPI_Add_error_string
, int errorcode
, const char *errorstring
)
1527 AMPI_API_DEF(int, MPI_Error_class
, int errorcode
, int *errorclass
)
1528 AMPI_API_DEF(int, MPI_Error_string
, int errorcode
, char *string
, int *resultlen
)
1529 AMPI_API_DEF(int, MPI_Get_version
, int *version
, int *subversion
)
1530 AMPI_API_DEF(int, MPI_Get_library_version
, char *version
, int *resultlen
)
1531 AMPI_API_DEF(int, MPI_Get_processor_name
, char *name
, int *resultlen
)
1532 AMPI_API_DEF(double, MPI_Wtime
, void)
1533 AMPI_API_DEF(double, MPI_Wtick
, void)
1534 AMPI_API_DEF(int, MPI_Is_thread_main
, int *flag
)
1535 AMPI_API_DEF(int, MPI_Query_thread
, int *provided
)
1536 AMPI_API_DEF(int, MPI_Init_thread
, int *argc
, char*** argv
, int required
, int *provided
)
1537 AMPI_API_DEF(int, MPI_Init
, int *argc
, char*** argv
)
1538 AMPI_API_DEF(int, MPI_Initialized
, int *isInit
)
1539 AMPI_API_DEF(int, MPI_Finalize
, void)
1540 AMPI_API_DEF(int, MPI_Finalized
, int *finalized
)
1541 AMPI_API_DEF(int, MPI_Abort
, MPI_Comm comm
, int errorcode
)
1542 AMPI_API_DEF(int, MPI_Pcontrol
, const int level
, ...)
1544 /*********************One sided communication routines *****************/
1545 /* MPI_Win : an index into a list in ampiParent (just like MPI_Group) */
1546 /* name length for COMM, TYPE and WIN */
1547 #define MPI_MAX_OBJECT_NAME 255
1548 #define MPI_MAX_INFO_KEY 255
1549 #define MPI_MAX_INFO_VAL 1024
1550 #define MPI_LOCK_SHARED 54
1551 #define MPI_LOCK_EXCLUSIVE 55
1552 #define MPI_WIN_NULL -1
1554 #define MPI_WIN_FLAVOR_CREATE 1
1555 #define MPI_WIN_FLAVOR_ALLOCATE 2
1556 #define MPI_WIN_FLAVOR_DYNAMIC 3
1557 #define MPI_WIN_FLAVOR_SHARED 4
1559 #define MPI_WIN_UNIFIED 0
1560 #define MPI_WIN_SEPARATE 1
1562 #define MPI_MODE_NOCHECK 1
1563 #define MPI_MODE_NOPRECEDE 2
1564 #define MPI_MODE_NOPUT 4
1565 #define MPI_MODE_NOSTORE 8
1566 #define MPI_MODE_NOSUCCEED 16
1568 typedef int MPI_Win
;
1570 typedef void (MPI_Win_errhandler_fn
)(MPI_Win
*, int *, ...);
1571 typedef void (MPI_Win_errhandler_function
)(MPI_Win
*, int *, ...);
1573 typedef int (MPI_Win_copy_attr_function
)(MPI_Win oldwin
, int keyval
,
1574 void *extra_state
, void *attribute_val_in
,
1575 void *attribute_val_out
, int *flag
);
1576 typedef int (MPI_Win_delete_attr_function
)(MPI_Win win
, int keyval
,
1577 void *attribute_val
, void *extra_state
);
1579 #define MPI_WIN_NULL_DELETE_FN MPI_win_null_delete_fn
1580 #define MPI_WIN_NULL_COPY_FN MPI_win_null_copy_fn
1581 #define MPI_WIN_DUP_FN MPI_win_dup_fn
1583 int MPI_WIN_NULL_COPY_FN ( MPI_Win
, int, void *, void *, void *, int * );
1584 int MPI_WIN_NULL_DELETE_FN ( MPI_Win
, int, void *, void * );
1585 int MPI_WIN_DUP_FN ( MPI_Win
, int, void *, void *, void *, int * );
1588 AMPI_API_DEF(int, MPI_Win_create
, void *base
, MPI_Aint size
, int disp_unit
,
1589 MPI_Info info
, MPI_Comm comm
, MPI_Win
*newwin
)
1590 AMPI_API_DEF(int, MPI_Win_free
, MPI_Win
*win
)
1591 AMPI_API_DEF(int, MPI_Win_create_errhandler
, MPI_Win_errhandler_function
*win_errhandler_fn
,
1592 MPI_Errhandler
*errhandler
)
1593 AMPI_API_DEF(int, MPI_Win_call_errhandler
, MPI_Win win
, int errorcode
)
1594 AMPI_API_DEF(int, MPI_Win_get_errhandler
, MPI_Win win
, MPI_Errhandler
*errhandler
)
1595 AMPI_API_DEF(int, MPI_Win_set_errhandler
, MPI_Win win
, MPI_Errhandler errhandler
)
1596 AMPI_API_DEF(int, MPI_Win_create_keyval
, MPI_Win_copy_attr_function
*copy_fn
,
1597 MPI_Win_delete_attr_function
*delete_fn
,
1598 int *keyval
, void *extra_state
)
1599 AMPI_API_DEF(int, MPI_Win_free_keyval
, int *keyval
)
1600 AMPI_API_DEF(int, MPI_Win_delete_attr
, MPI_Win win
, int key
)
1601 AMPI_API_DEF(int, MPI_Win_get_attr
, MPI_Win win
, int win_keyval
, void *attribute_val
, int *flag
)
1602 AMPI_API_DEF(int, MPI_Win_set_attr
, MPI_Win win
, int win_keyval
, void *attribute_val
)
1603 AMPI_API_DEF(int, MPI_Win_get_group
, MPI_Win win
, MPI_Group
*group
)
1604 AMPI_API_DEF(int, MPI_Win_set_name
, MPI_Win win
, const char *name
)
1605 AMPI_API_DEF(int, MPI_Win_get_name
, MPI_Win win
, char *name
, int *length
)
1606 AMPI_API_DEF(int, MPI_Win_set_info
, MPI_Win win
, MPI_Info info
)
1607 AMPI_API_DEF(int, MPI_Win_get_info
, MPI_Win win
, MPI_Info
*info
)
1608 AMPI_API_DEF(int, MPI_Win_fence
, int assertion
, MPI_Win win
)
1609 AMPI_API_DEF(int, MPI_Win_lock
, int lock_type
, int rank
, int assert, MPI_Win win
)
1610 AMPI_API_DEF(int, MPI_Win_unlock
, int rank
, MPI_Win win
)
1611 AMPI_API_DEF(int, MPI_Win_post
, MPI_Group group
, int assertion
, MPI_Win win
)
1612 AMPI_API_DEF(int, MPI_Win_wait
, MPI_Win win
)
1613 AMPI_API_DEF(int, MPI_Win_start
, MPI_Group group
, int assertion
, MPI_Win win
)
1614 AMPI_API_DEF(int, MPI_Win_complete
, MPI_Win win
)
1615 AMPI_API_DEF(int, MPI_Win_test
, MPI_Win win
, int *flag
)
1616 AMPI_API_DEF(int, MPI_Alloc_mem
, MPI_Aint size
, MPI_Info info
, void *baseptr
)
1617 AMPI_API_DEF(int, MPI_Free_mem
, void *base
)
1618 AMPI_API_DEF(int, MPI_Put
, const void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
, int rank
,
1619 MPI_Aint targdisp
, int targcnt
, MPI_Datatype targtype
, MPI_Win win
)
1620 AMPI_API_DEF(int, MPI_Get
, void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
, int rank
,
1621 MPI_Aint targdisp
, int targcnt
, MPI_Datatype targtype
, MPI_Win win
)
1622 AMPI_API_DEF(int, MPI_Accumulate
, const void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
, int rank
,
1623 MPI_Aint targdisp
, int targcnt
, MPI_Datatype targtype
,
1624 MPI_Op op
, MPI_Win win
)
1625 AMPI_API_DEF(int, MPI_Get_accumulate
, const void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
,
1626 void *resaddr
, int rescnt
, MPI_Datatype restype
,
1627 int rank
, MPI_Aint targdisp
, int targcnt
,
1628 MPI_Datatype targtype
, MPI_Op op
, MPI_Win win
)
1629 AMPI_API_DEF(int, MPI_Rput
, const void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
, int targrank
,
1630 MPI_Aint targdisp
, int targcnt
, MPI_Datatype targtype
, MPI_Win win
,
1631 MPI_Request
*request
)
1632 AMPI_API_DEF(int, MPI_Rget
, void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
, int rank
,
1633 MPI_Aint targdisp
, int targcnt
, MPI_Datatype targtype
, MPI_Win win
,
1634 MPI_Request
*request
)
1635 AMPI_API_DEF(int, MPI_Raccumulate
, const void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
, int rank
,
1636 MPI_Aint targdisp
, int targcnt
, MPI_Datatype targtype
,
1637 MPI_Op op
, MPI_Win win
, MPI_Request
*request
)
1638 AMPI_API_DEF(int, MPI_Rget_accumulate
, const void *orgaddr
, int orgcnt
, MPI_Datatype orgtype
,
1639 void *resaddr
, int rescnt
, MPI_Datatype restype
,
1640 int rank
, MPI_Aint targdisp
, int targcnt
,
1641 MPI_Datatype targtype
, MPI_Op op
, MPI_Win win
,
1642 MPI_Request
*request
)
1643 AMPI_API_DEF(int, MPI_Fetch_and_op
, const void *orgaddr
, void *resaddr
, MPI_Datatype type
,
1644 int rank
, MPI_Aint targdisp
, MPI_Op op
, MPI_Win win
)
1645 AMPI_API_DEF(int, MPI_Compare_and_swap
, const void *orgaddr
, const void *compaddr
, void *resaddr
,
1646 MPI_Datatype type
, int rank
, MPI_Aint targdisp
,
1650 AMPI_API_DEF(int, MPI_Info_create
, MPI_Info
*info
)
1651 AMPI_API_DEF(int, MPI_Info_set
, MPI_Info info
, const char *key
, const char *value
)
1652 AMPI_API_DEF(int, MPI_Info_delete
, MPI_Info info
, const char *key
)
1653 AMPI_API_DEF(int, MPI_Info_get
, MPI_Info info
, const char *key
, int valuelen
, char *value
, int *flag
)
1654 AMPI_API_DEF(int, MPI_Info_get_valuelen
, MPI_Info info
, const char *key
, int *valuelen
, int *flag
)
1655 AMPI_API_DEF(int, MPI_Info_get_nkeys
, MPI_Info info
, int *nkeys
)
1656 AMPI_API_DEF(int, MPI_Info_get_nthkey
, MPI_Info info
, int n
, char *key
)
1657 AMPI_API_DEF(int, MPI_Info_dup
, MPI_Info info
, MPI_Info
*newinfo
)
1658 AMPI_API_DEF(int, MPI_Info_free
, MPI_Info
*info
)
1662 typedef int MPIX_Grequest_class
;
1663 typedef int MPIX_Grequest_poll_function(void *extra_state
, MPI_Status
*status
);
1664 typedef int MPIX_Grequest_wait_function(int count
, void **array_of_states
,
1665 double timeout
, MPI_Status
*status
);
1667 AMPI_API_DEF(int, MPIX_Grequest_start
, MPI_Grequest_query_function
*query_fn
,
1668 MPI_Grequest_free_function
*free_fn
, MPI_Grequest_cancel_function
*cancel_fn
,
1669 MPIX_Grequest_poll_function
*poll_fn
, void *extra_state
, MPI_Request
*request
)
1670 AMPI_API_DEF(int, MPIX_Grequest_class_create
, MPI_Grequest_query_function
*query_fn
,
1671 MPI_Grequest_free_function
*free_fn
, MPI_Grequest_cancel_function
*cancel_fn
,
1672 MPIX_Grequest_poll_function
*poll_fn
, MPIX_Grequest_wait_function
*wait_fn
,
1673 MPIX_Grequest_class
*greq_class
)
1674 AMPI_API_DEF(int, MPIX_Grequest_class_allocate
, MPIX_Grequest_class greq_class
,
1675 void *extra_state
, MPI_Request
*request
)
1678 /***Fortran-C bindings***/
1679 #define MPI_Comm_c2f(comm) (MPI_Fint)(comm)
1680 #define MPI_Comm_f2c(comm) (MPI_Comm)(comm)
1681 #define MPI_Type_c2f(datatype) (MPI_Fint)(datatype)
1682 #define MPI_Type_f2c(datatype) (MPI_Datatype)(datatype)
1683 #define MPI_Group_c2f(group) (MPI_Fint)(group)
1684 #define MPI_Group_f2c(group) (MPI_Group)(group)
1685 #define MPI_Info_c2f(info) (MPI_Fint)(info)
1686 #define MPI_Info_f2c(info) (MPI_Info)(info)
1687 #define MPI_Request_f2c(request) (MPI_Request)(request)
1688 #define MPI_Request_c2f(request) (MPI_Fint)(request)
1689 #define MPI_Op_c2f(op) (MPI_Fint)(op)
1690 #define MPI_Op_f2c(op) (MPI_Op)(op)
1691 #define MPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler)
1692 #define MPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler)
1693 #define MPI_Win_c2f(win) (MPI_Fint)(win)
1694 #define MPI_Win_f2c(win) (MPI_Win)(win)
1698 /*** AMPI Extensions ***/
1699 int AMPI_Migrate(MPI_Info hints
);
1700 int AMPI_Load_start_measure(void);
1701 int AMPI_Load_stop_measure(void);
1702 int AMPI_Load_reset_measure(void);
1703 int AMPI_Load_set_value(double value
);
1704 int AMPI_Migrate_to_pe(int dest
);
1705 int AMPI_Set_migratable(int mig
);
1706 int AMPI_Register_pup(MPI_PupFn fn
, void *data
, int *idx
);
1707 int AMPI_Get_pup_data(int idx
, void *data
);
1708 int AMPI_Register_main(MPI_MainFn mainFn
, const char *name
);
1709 int AMPI_Register_about_to_migrate(MPI_MigrateFn fn
);
1710 int AMPI_Register_just_migrated(MPI_MigrateFn fn
);
1711 int AMPI_Iget(MPI_Aint orgdisp
, int orgcnt
, MPI_Datatype orgtype
, int rank
,
1712 MPI_Aint targdisp
, int targcnt
, MPI_Datatype targtype
,
1713 MPI_Win win
, MPI_Request
*request
);
1714 int AMPI_Iget_wait(MPI_Request
*request
, MPI_Status
*status
, MPI_Win win
);
1715 int AMPI_Iget_free(MPI_Request
*request
, MPI_Status
*status
, MPI_Win win
);
1716 int AMPI_Iget_data(void *data
, MPI_Status status
);
1717 int AMPI_Type_is_contiguous(MPI_Datatype datatype
, int *flag
);
1719 int AMPI_Evacuate(void);
1721 int AMPI_Yield(void);
1722 int AMPI_Suspend(void);
1723 int AMPI_Resume(int dest
, MPI_Comm comm
);
1724 int AMPI_Print(const char *str
);
1725 int AMPI_Trace_begin(void);
1726 int AMPI_Trace_end(void);
1727 int AMPI_Alltoall_medium(void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1728 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1730 int AMPI_Alltoall_long(void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
1731 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
1734 #if CMK_BIGSIM_CHARM
1735 int AMPI_Set_start_event(MPI_Comm comm
);
1736 int AMPI_Set_end_event(void);
1737 void beginTraceBigSim(char* msg
);
1738 void endTraceBigSim(char* msg
, char* param
);
1743 int AMPI_GPU_Iinvoke_wr(hapiWorkRequest
*to_call
, MPI_Request
*request
);
1744 int AMPI_GPU_Iinvoke(cudaStream_t stream
, MPI_Request
*request
);
1745 int AMPI_GPU_Invoke_wr(hapiWorkRequest
*to_call
);
1746 int AMPI_GPU_Invoke(cudaStream_t stream
);
1750 /* Execute this shell command (just like "system()") */
1751 int AMPI_System(const char *cmd
);
1753 /* Determine approximate depth of stack at the point of this call */
1754 extern long ampiCurrentStackUsage(void);
1756 // Functions and constants unsupported in AMPI
1758 #if defined __cplusplus && __cplusplus >= 201402L
1759 # define AMPI_UNIMPLEMENTED [[deprecated("currently unimplemented in AMPI")]]
1760 #elif defined __GNUC__ || defined __clang__
1761 # define AMPI_UNIMPLEMENTED __attribute__((deprecated("currently unimplemented in AMPI")))
1762 #elif defined _MSC_VER
1763 # define AMPI_UNIMPLEMENTED __declspec(deprecated("currently unimplemented in AMPI"))
1765 # define AMPI_UNIMPLEMENTED
1768 #define AMPI_API_DEF_NOIMPL(return_type, function_name, ...) \
1769 AMPI_UNIMPLEMENTED AMPI_API_DEF(return_type, function_name, __VA_ARGS__)
1772 #define MPI_ARGV_NULL (char **)0
1773 #define MPI_ARGVS_NULL (char ***)0
1774 #define MPI_MAX_PORT_NAME 256
1775 #define MPI_ORDER_C 56 /* defined in ROMIO */
1776 #define MPI_ORDER_FORTRAN 57 /* defined in ROMIO */
1777 #define MPI_TYPECLASS_INTEGER -1
1778 #define MPI_TYPECLASS_REAL -2
1779 #define MPI_TYPECLASS_COMPLEX -3
1780 #define MPI_DISTRIBUTE_BLOCK 121 /* defined in ROMIO */
1781 #define MPI_DISTRIBUTE_CYCLIC 122 /* defined in ROMIO */
1782 #define MPI_DISTRIBUTE_NONE 123 /* defined in ROMIO */
1783 #define MPI_DISTRIBUTE_DFLT_DARG -49767 /* defined in ROMIO */
1784 #define MPI_INTEGER1 MPI_CHAR
1785 #define MPI_INTEGER2 MPI_SHORT
1786 #define MPI_INTEGER4 MPI_INT
1787 #define MPI_INTEGER8 MPI_LONG_LONG_INT
1788 #define MPI_REAL4 MPI_FLOAT
1789 #define MPI_REAL8 MPI_DOUBLE
1790 #define MPI_REAL16 MPI_LONG_DOUBLE
1791 #define MPI_COMPLEX8 MPI_FLOAT_COMPLEX
1792 #define MPI_COMPLEX16 MPI_DOUBLE_COMPLEX
1793 #define MPI_COMPLEX32 MPI_LONG_DOUBLE_COMPLEX
1794 #define MPI_C_FLOAT_COMPLEX MPI_FLOAT_COMPLEX
1795 #define MPI_C_DOUBLE_COMPLEX MPI_DOUBLE_COMPLEX
1796 #define MPI_C_LONG_DOUBLE_COMPLEX MPI_LONG_DOUBLE_COMPLEX
1797 #define MPI_CXX_BOOL MPI_C_BOOL
1798 #define MPI_CXX_FLOAT_COMPLEX MPI_C_FLOAT_COMPLEX
1799 #define MPI_CXX_DOUBLE_COMPLEX MPI_C_DOUBLE_COMPLEX
1800 #define MPI_CXX_LONG_DOUBLE_COMPLEX MPI_C_LONG_DOUBLE_COMPLEX
1803 #define MPI_Win_free_errhandler (void*)
1806 #define MPI_ERR_RMA_RANGE 54
1807 #define MPI_ERR_RMA_ATTACH 55
1808 #define MPI_ERR_RMA_SHARED 56
1809 #define MPI_ERR_RMA_FLAVOR 57
1812 typedef int MPI_T_enum
;
1813 typedef int MPI_T_cvar_handle
;
1814 typedef int MPI_T_pvar_handle
;
1815 typedef int MPI_T_pvar_session
;
1816 #define MPI_T_ENUM_NULL (-1)
1817 #define MPI_T_CVAR_HANDLE_NULL (-1)
1818 #define MPI_T_PVAR_HANDLE_NULL (-1)
1819 #define MPI_T_PVAR_SESSION_NULL (-1)
1820 #define MPI_T_VERBOSITY_USER_BASIC 1
1821 #define MPI_T_VERBOSITY_USER_DETAIL 2
1822 #define MPI_T_VERBOSITY_USER_ALL 3
1823 #define MPI_T_VERBOSITY_TUNER_BASIC 4
1824 #define MPI_T_VERBOSITY_TUNER_DETAIL 5
1825 #define MPI_T_VERBOSITY_TUNER_ALL 6
1826 #define MPI_T_VERBOSITY_MPIDEV_BASIC 7
1827 #define MPI_T_VERBOSITY_MPIDEV_DETAIL 8
1828 #define MPI_T_VERBOSITY_MPIDEV_ALL 9
1829 #define MPI_T_BIND_NO_OBJECT 1
1830 #define MPI_T_BIND_MPI_COMM 2
1831 #define MPI_T_BIND_MPI_DATATYPE 3
1832 #define MPI_T_BIND_MPI_ERRHANDLER 4
1833 #define MPI_T_BIND_MPI_FILE 5
1834 #define MPI_T_BIND_MPI_GROUP 6
1835 #define MPI_T_BIND_MPI_OP 7
1836 #define MPI_T_BIND_MPI_REQUEST 8
1837 #define MPI_T_BIND_MPI_WIN 9
1838 #define MPI_T_BIND_MPI_MESSAGE 10
1839 #define MPI_T_BIND_MPI_INFO 11
1840 #define MPI_T_SCOPE_CONSTANT 1
1841 #define MPI_T_SCOPE_READONLY 2
1842 #define MPI_T_SCOPE_LOCAL 3
1843 #define MPI_T_SCOPE_GROUP 4
1844 #define MPI_T_SCOPE_GROUP_EQ 5
1845 #define MPI_T_SCOPE_ALL 6
1846 #define MPI_T_SCOPE_ALL_EQ 7
1847 #define MPI_T_PVAR_ALL_HANDLES (-1)
1848 #define MPI_T_PVAR_CLASS_STATE 1
1849 #define MPI_T_PVAR_CLASS_LEVEL 2
1850 #define MPI_T_PVAR_CLASS_SIZE 3
1851 #define MPI_T_PVAR_CLASS_PERCENTAGE 4
1852 #define MPI_T_PVAR_CLASS_HIGHWATERMARK 5
1853 #define MPI_T_PVAR_CLASS_LOWWATERMARK 6
1854 #define MPI_T_PVAR_CLASS_COUNTER 7
1855 #define MPI_T_PVAR_CLASS_AGGREGATE 8
1856 #define MPI_T_PVAR_CLASS_TIMER 9
1857 #define MPI_T_PVAR_CLASS_GENERIC 10
1858 #define MPI_T_ERR_MEMORY 58
1859 #define MPI_T_ERR_NOT_INITIALIZED 59
1860 #define MPI_T_ERR_CANNOT_INIT 60
1861 #define MPI_T_ERR_INVALID_INDEX 61
1862 #define MPI_T_ERR_INVALID_ITEM 62
1863 #define MPI_T_ERR_INVALID_NAME 63
1864 #define MPI_T_ERR_INVALID_HANDLE 64
1865 #define MPI_T_ERR_OUT_OF_HANDLES 65
1866 #define MPI_T_ERR_OUT_OF_SESSIONS 66
1867 #define MPI_T_ERR_INVALID_SESSION 67
1868 #define MPI_T_ERR_CVAR_SET_NOT_NOW 68
1869 #define MPI_T_ERR_CVAR_SET_NEVER 69
1870 #define MPI_T_ERR_CVAR_READ 70
1871 #define MPI_T_ERR_CVAR_WRITE 71
1872 #define MPI_T_ERR_PVAR_START 72
1873 #define MPI_T_ERR_PVAR_STOP 73
1874 #define MPI_T_ERR_PVAR_READ 74
1875 #define MPI_T_ERR_PVAR_WRITE 75
1876 #define MPI_T_ERR_PVAR_RESET 76
1877 #define MPI_T_ERR_PVAR_READRESET 77
1878 #define MPI_T_ERR_PVAR_NO_STARTSTOP 78
1879 #define MPI_T_ERR_PVAR_NO_WRITE 79
1880 #define MPI_T_ERR_PVAR_NO_ATOMIC 80
1882 // MPIX FT interface (MPICH extensions needed to compile tests/ampi/mpich-test/)
1883 #define MPIX_ERR_PROC_FAILED 77
1884 #define MPIX_ERR_PROC_FAILED_PENDING 78
1885 #define MPIX_ERR_REVOKED 79
1886 #define MPIX_Comm_agree (void*)
1887 #define MPIX_Comm_failure_ack (void*)
1888 #define MPIX_Comm_shrink (void*)
1889 #define MPIX_Comm_failure_get_acked (void*)
1890 #define MPIX_Comm_revoke (void*)
1893 /* MPI 3.1 standards compliance overview.
1894 * This list contains all MPI functions not supported in AMPI currently.
1897 /* A.2.1 Point-to-Point Communication C Bindings */
1899 /* A.2.2 Datatypes C Bindings */
1901 AMPI_API_DEF_NOIMPL(int, MPI_Pack_external
, const char datarep
[], const void *inbuf
, int incount
, MPI_Datatype datatype
, void *outbuf
, MPI_Aint outsize
, MPI_Aint
*position
)
1902 AMPI_API_DEF_NOIMPL(int, MPI_Pack_external_size
, const char datarep
[], int incount
, MPI_Datatype datatype
, MPI_Aint
*size
)
1903 // AMPI_API_DEF_NOIMPL(int, MPI_Type_create_darray, int size, int rank, int ndims, const int array_of_gsizes[], const int array_of_distribs[], const int array_of_dargs[], const int array_of_psizes[], int order, MPI_Datatype oldtype, MPI_Datatype *newtype) //provided by ROMIO
1904 // AMPI_API_DEF_NOIMPL(int, MPI_Type_create_subarray, int ndims, const int array_of_sizes[], const int array_of_subsizes[], const int array_of_starts[], int order, MPI_Datatype oldtype, MPI_Datatype *newtype) //provided by ROMIO
1905 AMPI_API_DEF_NOIMPL(int, MPI_Unpack_external
, const char datarep
[], const void *inbuf
, MPI_Aint insize
, MPI_Aint
*position
, void *outbuf
, int outcount
, MPI_Datatype datatype
)
1907 /* A.2.3 Collective Communication C Bindings */
1909 /* A.2.4 Groups, Contexts, Communicators, and Caching C Bindings */
1911 /* A.2.6 MPI Environmental Management C Bindings */
1913 typedef void (MPI_File_errhandler_function
)(MPI_File
*file
, int *err
, ...);
1915 AMPI_API_DEF_NOIMPL(int, MPI_File_call_errhandler
, MPI_File fh
, int errorcode
)
1916 AMPI_API_DEF_NOIMPL(int, MPI_File_create_errhandler
, MPI_File_errhandler_function
*file_errhandler_fn
, MPI_Errhandler
*errhandler
)
1917 AMPI_API_DEF_NOIMPL(int, MPI_File_get_errhandler
, MPI_File file
, MPI_Errhandler
*errhandler
)
1918 AMPI_API_DEF_NOIMPL(int, MPI_File_set_errhandler
, MPI_File file
, MPI_Errhandler errhandler
)
1921 /* A.2.7 The Info Object C Bindings */
1923 /* A.2.8 Process Creation and Management C Bindings */
1925 AMPI_API_DEF_NOIMPL(int, MPI_Close_port
, const char *port_name
)
1926 AMPI_API_DEF_NOIMPL(int, MPI_Comm_accept
, const char *port_name
, MPI_Info info
, int root
, MPI_Comm comm
, MPI_Comm
*newcomm
)
1927 AMPI_API_DEF_NOIMPL(int, MPI_Comm_connect
, const char *port_name
, MPI_Info info
, int root
, MPI_Comm comm
, MPI_Comm
*newcomm
)
1928 AMPI_API_DEF_NOIMPL(int, MPI_Comm_disconnect
, MPI_Comm
*comm
)
1929 AMPI_API_DEF_NOIMPL(int, MPI_Comm_get_parent
, MPI_Comm
*parent
)
1930 AMPI_API_DEF_NOIMPL(int, MPI_Comm_join
, int fd
, MPI_Comm
*intercomm
)
1931 AMPI_API_DEF_NOIMPL(int, MPI_Comm_spawn
, const char *command
, char *argv
[], int maxprocs
, MPI_Info info
, int root
, MPI_Comm comm
, MPI_Comm
*intercomm
, int array_of_errcodes
[])
1932 AMPI_API_DEF_NOIMPL(int, MPI_Comm_spawn_multiple
, int count
, char *array_of_commands
[], char **array_of_argv
[], const int array_of_maxprocs
[], const MPI_Info array_of_info
[], int root
, MPI_Comm comm
, MPI_Comm
*intercomm
, int array_of_errcodes
[])
1933 AMPI_API_DEF_NOIMPL(int, MPI_Lookup_name
, const char *service_name
, MPI_Info info
, char *port_name
)
1934 AMPI_API_DEF_NOIMPL(int, MPI_Open_port
, MPI_Info info
, char *port_name
)
1935 AMPI_API_DEF_NOIMPL(int, MPI_Publish_name
, const char *service_name
, MPI_Info info
, const char *port_name
)
1936 AMPI_API_DEF_NOIMPL(int, MPI_Unpublish_name
, const char *service_name
, MPI_Info info
, const char *port_name
)
1939 /* A.2.9 One-Sided Communications C Bindings */
1941 AMPI_API_DEF_NOIMPL(int, MPI_Win_allocate
, MPI_Aint size
, int disp_unit
, MPI_Info info
, MPI_Comm comm
, void *baseptr
, MPI_Win
*win
)
1942 AMPI_API_DEF_NOIMPL(int, MPI_Win_allocate_shared
, MPI_Aint size
, int disp_unit
, MPI_Info info
, MPI_Comm comm
, void *baseptr
, MPI_Win
*win
)
1943 AMPI_API_DEF_NOIMPL(int, MPI_Win_attach
, MPI_Win win
, void *base
, MPI_Aint size
)
1944 AMPI_API_DEF_NOIMPL(int, MPI_Win_create_dynamic
, MPI_Info info
, MPI_Comm comm
, MPI_Win
*win
)
1945 AMPI_API_DEF_NOIMPL(int, MPI_Win_detach
, MPI_Win win
, const void *base
)
1946 AMPI_API_DEF_NOIMPL(int, MPI_Win_flush
, int rank
, MPI_Win win
)
1947 AMPI_API_DEF_NOIMPL(int, MPI_Win_flush_all
, MPI_Win win
)
1948 AMPI_API_DEF_NOIMPL(int, MPI_Win_flush_local
, int rank
, MPI_Win win
)
1949 AMPI_API_DEF_NOIMPL(int, MPI_Win_flush_local_all
, MPI_Win win
)
1950 AMPI_API_DEF_NOIMPL(int, MPI_Win_lock_all
, int assert, MPI_Win win
)
1951 AMPI_API_DEF_NOIMPL(int, MPI_Win_shared_query
, MPI_Win win
, int rank
, MPI_Aint
*size
, int *disp_unit
, void *baseptr
)
1952 AMPI_API_DEF_NOIMPL(int, MPI_Win_sync
, MPI_Win win
)
1953 AMPI_API_DEF_NOIMPL(int, MPI_Win_unlock_all
, MPI_Win win
)
1956 /* A.2.10 External Interfaces C Bindings */
1958 /* A.2.11 I/O C Bindings */
1960 AMPI_API_DEF_NOIMPL(int, MPI_CONVERSION_FN_NULL
, void *userbuf
, MPI_Datatype datatype
, int count
, void *filebuf
, MPI_Offset position
, void *extra_state
)
1961 AMPI_API_DEF_NOIMPL(int, MPI_File_iread_all
, MPI_File fh
, void *buf
, int count
, MPI_Datatype datatype
, MPI_Request
*request
)
1962 AMPI_API_DEF_NOIMPL(int, MPI_File_iread_at_all
, MPI_File fh
, MPI_Offset offset
, void *buf
, int count
, MPI_Datatype datatype
, MPI_Request
*request
)
1963 AMPI_API_DEF_NOIMPL(int, MPI_File_iwrite_all
, MPI_File fh
, const void *buf
, int count
, MPI_Datatype datatype
, MPI_Request
*request
)
1964 AMPI_API_DEF_NOIMPL(int, MPI_File_iwrite_at_all
, MPI_File fh
, MPI_Offset offset
, const void *buf
, int count
, MPI_Datatype datatype
, MPI_Request
*request
)
1965 // AMPI_API_DEF_NOIMPL(int, MPI_Register_datarep, const char *datarep, MPI_Datarep_conversion_function *read_conversion_fn, MPI_Datarep_conversion_function *write_conversion_fn, MPI_Datarep_extent_function *dtype_file_extent_fn, void *extra_state) //Provided by ROMIO
1968 /* A.2.12 Language Bindings C Bindings */
1971 MPI_Fint count_lo
, count_hi_and_cancelled
, MPI_SOURCE
, MPI_TAG
, MPI_ERROR
;
1974 AMPI_API_DEF_NOIMPL(int, MPI_Status_f082f
, MPI_F08_status
*f08_status
, MPI_Fint
*f_status
)
1975 AMPI_API_DEF_NOIMPL(int, MPI_Status_f2f08
, MPI_Fint
*f_status
, MPI_F08_status
*f08_status
)
1976 AMPI_API_DEF_NOIMPL(int, MPI_Type_create_f90_complex
, int p
, int r
, MPI_Datatype
*newtype
)
1977 AMPI_API_DEF_NOIMPL(int, MPI_Type_create_f90_integer
, int r
, MPI_Datatype
*newtype
)
1978 AMPI_API_DEF_NOIMPL(int, MPI_Type_create_f90_real
, int p
, int r
, MPI_Datatype
*newtype
)
1979 AMPI_API_DEF_NOIMPL(int, MPI_Type_match_size
, int typeclass
, int size
, MPI_Datatype
*datatype
)
1980 AMPI_API_DEF_NOIMPL(MPI_Fint
, MPI_Message_c2f
, MPI_Message message
)
1981 AMPI_API_DEF_NOIMPL(MPI_Message
, MPI_Message_f2c
, MPI_Fint message
)
1982 AMPI_API_DEF_NOIMPL(int, MPI_Status_c2f
, const MPI_Status
*c_status
, MPI_Fint
*f_status
)
1983 AMPI_API_DEF_NOIMPL(int, MPI_Status_c2f08
, const MPI_Status
*c_status
, MPI_F08_status
*f08_status
)
1984 AMPI_API_DEF_NOIMPL(int, MPI_Status_f082c
, const MPI_F08_status
*f08_status
, MPI_Status
*c_status
)
1985 AMPI_API_DEF_NOIMPL(int, MPI_Status_f2c
, const MPI_Fint
*f_status
, MPI_Status
*c_status
)
1988 /* A.2.13 Tools / Profiling Interface C Bindings */
1990 /* A.2.14 Tools / MPI Tool Information Interface C Bindings */
1992 AMPI_API_DEF_NOIMPL(int, MPI_T_category_changed
, int *stamp
)
1993 AMPI_API_DEF_NOIMPL(int, MPI_T_category_get_categories
, int cat_index
, int len
, int indices
[])
1994 AMPI_API_DEF_NOIMPL(int, MPI_T_category_get_cvars
, int cat_index
, int len
, int indices
[])
1995 AMPI_API_DEF_NOIMPL(int, MPI_T_category_get_index
, const char *name
, int *cat_index
)
1996 AMPI_API_DEF_NOIMPL(int, MPI_T_category_get_info
, int cat_index
, char *name
, int *name_len
, char *desc
, int *desc_len
, int *num_cvars
, int *num_pvars
, int *num_categories
)
1997 AMPI_API_DEF_NOIMPL(int, MPI_T_category_get_num
, int *num_cat
)
1998 AMPI_API_DEF_NOIMPL(int, MPI_T_category_get_pvars
, int cat_index
, int len
, int indices
[])
1999 AMPI_API_DEF_NOIMPL(int, MPI_T_cvar_get_index
, const char *name
, int *cvar_index
)
2000 AMPI_API_DEF_NOIMPL(int, MPI_T_cvar_get_info
, int cvar_index
, char *name
, int *name_len
, int *verbosity
, MPI_Datatype
*datatype
, MPI_T_enum
*enumtype
, char *desc
, int *desc_len
, int *bind
, int *scope
)
2001 AMPI_API_DEF_NOIMPL(int, MPI_T_cvar_get_num
, int *num_cvar
)
2002 AMPI_API_DEF_NOIMPL(int, MPI_T_cvar_handle_alloc
, int cvar_index
, void *obj_handle
, MPI_T_cvar_handle
*handle
, int *count
)
2003 AMPI_API_DEF_NOIMPL(int, MPI_T_cvar_handle_free
, MPI_T_cvar_handle
*handle
)
2004 AMPI_API_DEF_NOIMPL(int, MPI_T_cvar_read
, MPI_T_cvar_handle handle
, void* buf
)
2005 AMPI_API_DEF_NOIMPL(int, MPI_T_cvar_write
, MPI_T_cvar_handle handle
, const void* buf
)
2006 AMPI_API_DEF_NOIMPL(int, MPI_T_enum_get_info
, MPI_T_enum enumtype
, int *num
, char *name
, int *name_len
)
2007 AMPI_API_DEF_NOIMPL(int, MPI_T_enum_get_item
, MPI_T_enum enumtype
, int index
, int *value
, char *name
, int *name_len
)
2008 AMPI_API_DEF_NOIMPL(int, MPI_T_finalize
, void)
2009 AMPI_API_DEF_NOIMPL(int, MPI_T_init_thread
, int required
, int *provided
)
2010 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_get_index
, const char *name
, int var_class
, int *pvar_index
)
2011 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_get_info
, int pvar_index
, char *name
, int *name_len
, int *verbosity
, int *var_class
, MPI_Datatype
*datatype
, MPI_T_enum
*enumtype
, char *desc
, int *desc_len
, int *bind
, int *readonly
, int *continuous
, int *atomic
)
2012 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_get_num
, int *num_pvar
)
2013 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_handle_alloc
, MPI_T_pvar_session session
, int pvar_index
, void *obj_handle
, MPI_T_pvar_handle
*handle
, int *count
)
2014 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_handle_free
, MPI_T_pvar_session session
,MPI_T_pvar_handle
*handle
)
2015 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_read
, MPI_T_pvar_session session
, MPI_T_pvar_handle handle
,void* buf
)
2016 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_readreset
, MPI_T_pvar_session session
,MPI_T_pvar_handle handle
, void* buf
)
2017 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_reset
, MPI_T_pvar_session session
, MPI_T_pvar_handle handle
)
2018 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_session_create
, MPI_T_pvar_session
*session
)
2019 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_session_free
, MPI_T_pvar_session
*session
)
2020 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_start
, MPI_T_pvar_session session
, MPI_T_pvar_handle handle
)
2021 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_stop
, MPI_T_pvar_session session
, MPI_T_pvar_handle handle
)
2022 AMPI_API_DEF_NOIMPL(int, MPI_T_pvar_write
, MPI_T_pvar_session session
, MPI_T_pvar_handle handle
, const void* buf
)
2025 /* A.2.15 Deprecated C Bindings */