Wrap all RTS functions exposed to AMPI programs in special macros
[charm.git] / src / libs / ck-libs / ampi / ampi_functions.h
blob16c19d97298dafecb17ccdb129b41ae9fa01e371
1 /*
2 Keep this header free of:
3 * include guards
4 * extern "C"
5 * typedef
6 * #define without #ifndef guard or #undef after use
7 * global variables
8 * basically anything other than function declarations of the form
9 AMPI_FUNC/AMPI_CUSTOM_FUNC, with no trailing semicolon
10 * #include of files violating any of the above
13 #ifndef AMPI_NOIMPL_ONLY
15 #ifndef AMPI_FUNC
16 # error You must define AMPI_FUNC before including this file!
17 #endif
18 #ifndef AMPI_CUSTOM_FUNC
19 # error You must define AMPI_CUSTOM_FUNC before including this file!
20 #endif
22 #if CMK_CUDA
23 #include "hapi_functions.h"
24 #endif
26 AMPI_CUSTOM_FUNC(void, AMPI_Exit, int exitCode)
28 AMPI_CUSTOM_FUNC(void, ampiMarkAtexit, void)
30 #ifndef MPI_COMM_NULL_COPY_FN
31 #define MPI_COMM_NULL_COPY_FN MPI_comm_null_copy_fn
32 #endif
33 #ifndef MPI_COMM_NULL_DELETE_FN
34 #define MPI_COMM_NULL_DELETE_FN MPI_comm_null_delete_fn
35 #endif
36 #ifndef MPI_COMM_DUP_FN
37 #define MPI_COMM_DUP_FN MPI_comm_dup_fn
38 #endif
40 #ifndef MPI_NULL_COPY_FN
41 #define MPI_NULL_COPY_FN MPI_comm_null_copy_fn
42 #endif
43 #ifndef MPI_NULL_DELETE_FN
44 #define MPI_NULL_DELETE_FN MPI_comm_null_delete_fn
45 #endif
46 #ifndef MPI_DUP_FN
47 #define MPI_DUP_FN MPI_comm_dup_fn
48 #endif
50 AMPI_CUSTOM_FUNC(int, MPI_COMM_NULL_COPY_FN , MPI_Comm, int, void *, void *, void *, int * )
51 AMPI_CUSTOM_FUNC(int, MPI_COMM_NULL_DELETE_FN , MPI_Comm, int, void *, void * )
52 AMPI_CUSTOM_FUNC(int, MPI_COMM_DUP_FN , MPI_Comm, int, void *, void *, void *, int * )
54 #ifndef MPI_TYPE_NULL_DELETE_FN
55 #define MPI_TYPE_NULL_DELETE_FN MPI_type_null_delete_fn
56 #endif
57 #ifndef MPI_TYPE_NULL_COPY_FN
58 #define MPI_TYPE_NULL_COPY_FN MPI_type_null_copy_fn
59 #endif
60 #ifndef MPI_TYPE_DUP_FN
61 #define MPI_TYPE_DUP_FN MPI_type_dup_fn
62 #endif
64 AMPI_CUSTOM_FUNC(int, MPI_TYPE_NULL_COPY_FN , MPI_Datatype, int, void *, void *, void *, int * )
65 AMPI_CUSTOM_FUNC(int, MPI_TYPE_NULL_DELETE_FN , MPI_Datatype, int, void *, void * )
66 AMPI_CUSTOM_FUNC(int, MPI_TYPE_DUP_FN , MPI_Datatype, int, void *, void *, void *, int * )
68 #include "pup_c_functions.h"
70 /***pt2pt***/
71 AMPI_FUNC(int, MPI_Send, const void *msg, int count, MPI_Datatype type, int dest,
72 int tag, MPI_Comm comm)
73 AMPI_FUNC(int, MPI_Ssend, const void *msg, int count, MPI_Datatype type, int dest,
74 int tag, MPI_Comm comm)
75 AMPI_FUNC(int, MPI_Recv, void *msg, int count, MPI_Datatype type, int src, int tag,
76 MPI_Comm comm, MPI_Status *status)
77 AMPI_FUNC(int, MPI_Mrecv, void* buf, int count, MPI_Datatype datatype, MPI_Message *message,
78 MPI_Status *status)
79 AMPI_FUNC(int, MPI_Get_count, const MPI_Status *sts, MPI_Datatype dtype, int *count)
80 AMPI_FUNC(int, MPI_Bsend, const void *buf, int count, MPI_Datatype datatype,
81 int dest, int tag,MPI_Comm comm)
82 AMPI_FUNC(int, MPI_Rsend, const void *buf, int count, MPI_Datatype datatype,
83 int dest, int tag,MPI_Comm comm)
84 AMPI_FUNC(int, MPI_Buffer_attach, void *buffer, int size)
85 AMPI_FUNC(int, MPI_Buffer_detach, void *buffer, int *size)
86 AMPI_FUNC(int, MPI_Isend, const void *buf, int count, MPI_Datatype datatype, int dest,
87 int tag, MPI_Comm comm, MPI_Request *request)
88 AMPI_FUNC(int, MPI_Ibsend, const void *buf, int count, MPI_Datatype datatype, int dest,
89 int tag, MPI_Comm comm, MPI_Request *request)
90 AMPI_FUNC(int, MPI_Issend, const void *buf, int count, MPI_Datatype datatype, int dest,
91 int tag, MPI_Comm comm, MPI_Request *request)
92 AMPI_FUNC(int, MPI_Irsend, const void *buf, int count, MPI_Datatype datatype, int dest,
93 int tag, MPI_Comm comm, MPI_Request *request)
94 AMPI_FUNC(int, MPI_Irecv, void *buf, int count, MPI_Datatype datatype, int src,
95 int tag, MPI_Comm comm, MPI_Request *request)
96 AMPI_FUNC(int, MPI_Imrecv, void* buf, int count, MPI_Datatype datatype, MPI_Message *message,
97 MPI_Request *request)
98 AMPI_FUNC(int, MPI_Wait, MPI_Request *request, MPI_Status *sts)
99 AMPI_FUNC(int, MPI_Test, MPI_Request *request, int *flag, MPI_Status *sts)
100 AMPI_FUNC(int, MPI_Waitany, int count, MPI_Request *request, int *index, MPI_Status *sts)
101 AMPI_FUNC(int, MPI_Testany, int count, MPI_Request *request, int *index, int *flag, MPI_Status *status)
102 AMPI_FUNC(int, MPI_Waitall, int count, MPI_Request *request, MPI_Status *sts)
103 AMPI_FUNC(int, MPI_Testall, int count, MPI_Request *request, int *flag, MPI_Status *sts)
104 AMPI_FUNC(int, MPI_Waitsome, int incount, MPI_Request *array_of_requests, int *outcount,
105 int *array_of_indices, MPI_Status *array_of_statuses)
106 AMPI_FUNC(int, MPI_Testsome, int incount, MPI_Request *array_of_requests, int *outcount,
107 int *array_of_indices, MPI_Status *array_of_statuses)
108 AMPI_FUNC(int, MPI_Request_get_status, MPI_Request request, int *flag, MPI_Status *sts)
109 AMPI_FUNC(int, MPI_Request_free, MPI_Request *request)
110 AMPI_FUNC(int, MPI_Grequest_start, MPI_Grequest_query_function *query_fn, MPI_Grequest_free_function *free_fn,\
111 MPI_Grequest_cancel_function *cancel_fn, void *extra_state, MPI_Request *request)
112 AMPI_FUNC(int, MPI_Grequest_complete, MPI_Request request)
113 AMPI_FUNC(int, MPI_Cancel, MPI_Request *request)
114 AMPI_FUNC(int, MPI_Test_cancelled, const MPI_Status *status, int *flag) /* FIXME: always returns success */
115 AMPI_FUNC(int, MPI_Status_set_cancelled, MPI_Status *status, int flag)
116 AMPI_FUNC(int, MPI_Iprobe, int src, int tag, MPI_Comm comm, int *flag, MPI_Status *sts)
117 AMPI_FUNC(int, MPI_Probe, int source, int tag, MPI_Comm comm, MPI_Status *sts)
118 AMPI_FUNC(int, MPI_Improbe, int source, int tag, MPI_Comm comm, int *flag,
119 MPI_Message *message, MPI_Status *status)
120 AMPI_FUNC(int, MPI_Mprobe, int source, int tag, MPI_Comm comm, MPI_Message *message,
121 MPI_Status *status)
122 AMPI_FUNC(int, MPI_Send_init, const void *buf, int count, MPI_Datatype type, int dest, int tag,
123 MPI_Comm comm, MPI_Request *req)
124 AMPI_FUNC(int, MPI_Ssend_init, const void *buf, int count, MPI_Datatype type, int dest, int tag,
125 MPI_Comm comm, MPI_Request *req)
126 AMPI_FUNC(int, MPI_Rsend_init, const void *buf, int count, MPI_Datatype type, int dest, int tag,
127 MPI_Comm comm, MPI_Request *req)
128 AMPI_FUNC(int, MPI_Bsend_init, const void *buf, int count, MPI_Datatype type, int dest, int tag,
129 MPI_Comm comm, MPI_Request *req)
130 AMPI_FUNC(int, MPI_Recv_init, void *buf, int count, MPI_Datatype type, int src, int tag,
131 MPI_Comm comm, MPI_Request *req)
132 AMPI_FUNC(int, MPI_Start, MPI_Request *reqnum)
133 AMPI_FUNC(int, MPI_Startall, int count, MPI_Request *array_of_requests)
134 AMPI_FUNC(int, MPI_Sendrecv, const void *sbuf, int scount, MPI_Datatype stype, int dest,
135 int stag, void *rbuf, int rcount, MPI_Datatype rtype,
136 int src, int rtag, MPI_Comm comm, MPI_Status *sts)
137 AMPI_FUNC(int, MPI_Sendrecv_replace, void* buf, int count, MPI_Datatype datatype,
138 int dest, int sendtag, int source, int recvtag,
139 MPI_Comm comm, MPI_Status *status)
141 /***datatypes***/
142 AMPI_FUNC(int, MPI_Type_contiguous, int count, MPI_Datatype oldtype,
143 MPI_Datatype *newtype)
144 AMPI_FUNC(int, MPI_Type_vector, int count, int blocklength, int stride,
145 MPI_Datatype oldtype, MPI_Datatype *newtype)
146 AMPI_FUNC(int, MPI_Type_create_hvector, int count, int blocklength, MPI_Aint stride,
147 MPI_Datatype oldtype, MPI_Datatype *newtype)
148 AMPI_FUNC(int, MPI_Type_hvector, int count, int blocklength, MPI_Aint stride,
149 MPI_Datatype oldtype, MPI_Datatype *newtype)
150 AMPI_FUNC(int, MPI_Type_indexed, int count, const int* arrBlength, const int* arrDisp,
151 MPI_Datatype oldtype, MPI_Datatype *newtype)
152 AMPI_FUNC(int, MPI_Type_create_hindexed, int count, const int* arrBlength, const MPI_Aint* arrDisp,
153 MPI_Datatype oldtype, MPI_Datatype *newtype)
154 AMPI_FUNC(int, MPI_Type_create_indexed_block, int count, int Blength, const int *arrDisp,
155 MPI_Datatype oldtype, MPI_Datatype *newtype)
156 AMPI_FUNC(int, MPI_Type_create_hindexed_block, int count, int Blength, const MPI_Aint *arrDisp,
157 MPI_Datatype oldtype, MPI_Datatype *newtype)
158 AMPI_FUNC(int, MPI_Type_hindexed, int count, int* arrBlength, MPI_Aint* arrDisp,
159 MPI_Datatype oldtype, MPI_Datatype *newtype)
160 AMPI_FUNC(int, MPI_Type_create_struct, int count, const int* arrBLength, const MPI_Aint* arrDisp,
161 const MPI_Datatype *oldType, MPI_Datatype *newType)
162 AMPI_FUNC(int, MPI_Type_struct, int count, int* arrBLength, MPI_Aint* arrDisp,
163 MPI_Datatype *oldType, MPI_Datatype *newType)
164 AMPI_FUNC(int, MPI_Type_get_envelope, MPI_Datatype datatype, int *num_integers, int *num_addresses,
165 int *num_datatypes, int *combiner)
166 AMPI_FUNC(int, MPI_Type_get_contents, MPI_Datatype datatype, int max_integers, int max_addresses,
167 int max_datatypes, int array_of_integers[], MPI_Aint array_of_addresses[],
168 MPI_Datatype array_of_datatypes[])
169 AMPI_FUNC(int, MPI_Type_commit, MPI_Datatype *datatype)
170 AMPI_FUNC(int, MPI_Type_free, MPI_Datatype *datatype)
171 AMPI_FUNC(int, MPI_Type_get_extent, MPI_Datatype datatype, MPI_Aint *lb, MPI_Aint *extent)
172 AMPI_FUNC(int, MPI_Type_get_extent_x, MPI_Datatype datatype, MPI_Count *lb, MPI_Count *extent)
173 AMPI_FUNC(int, MPI_Type_extent, MPI_Datatype datatype, MPI_Aint *extent)
174 AMPI_FUNC(int, MPI_Type_get_true_extent, MPI_Datatype datatype, MPI_Aint *true_lb, MPI_Aint *true_extent)
175 AMPI_FUNC(int, MPI_Type_get_true_extent_x, MPI_Datatype datatype, MPI_Count *true_lb, MPI_Count *true_extent)
176 AMPI_FUNC(int, MPI_Type_size, MPI_Datatype datatype, int *size)
177 AMPI_FUNC(int, MPI_Type_size_x, MPI_Datatype datatype, MPI_Count *size)
178 AMPI_FUNC(int, MPI_Type_lb, MPI_Datatype datatype, MPI_Aint* displacement)
179 AMPI_FUNC(int, MPI_Type_ub, MPI_Datatype datatype, MPI_Aint* displacement)
180 AMPI_FUNC(int, MPI_Type_set_name, MPI_Datatype datatype, const char *name)
181 AMPI_FUNC(int, MPI_Type_get_name, MPI_Datatype datatype, char *name, int *resultlen)
182 AMPI_FUNC(int, MPI_Type_dup, MPI_Datatype oldtype, MPI_Datatype *newtype)
183 AMPI_FUNC(int, MPI_Type_create_resized, MPI_Datatype oldtype, MPI_Aint lb, MPI_Aint extent, MPI_Datatype *newtype)
184 AMPI_FUNC(int, MPI_Type_set_attr, MPI_Datatype datatype, int type_keyval, void *attribute_val)
185 AMPI_FUNC(int, MPI_Type_get_attr, MPI_Datatype datatype, int type_keyval, void *attribute_val, int *flag)
186 AMPI_FUNC(int, MPI_Type_delete_attr, MPI_Datatype datatype, int type_keyval)
187 AMPI_FUNC(int, MPI_Type_create_keyval, MPI_Type_copy_attr_function *type_copy_attr_fn,
188 MPI_Type_delete_attr_function *type_delete_attr_fn,
189 int *type_keyval, void *extra_state)
190 AMPI_FUNC(int, MPI_Type_free_keyval, int *type_keyval)
191 AMPI_FUNC(int, MPI_Type_create_darray, int size, int rank, int ndims,
192 const int array_of_gsizes[], const int array_of_distribs[],
193 const int array_of_dargs[], const int array_of_psizes[],
194 int order, MPI_Datatype oldtype, MPI_Datatype *newtype)
195 AMPI_FUNC(int, MPI_Type_create_subarray, int ndims, const int array_of_sizes[],
196 const int array_of_subsizes[], const int array_of_starts[], int order,
197 MPI_Datatype oldtype, MPI_Datatype *newtype)
198 AMPI_FUNC(int, MPI_Get_address, const void* location, MPI_Aint *address)
199 AMPI_FUNC(int, MPI_Address, void* location, MPI_Aint *address)
200 AMPI_FUNC(int, MPI_Status_set_elements, MPI_Status *status, MPI_Datatype datatype, int count)
201 AMPI_FUNC(int, MPI_Status_set_elements_x, MPI_Status *status, MPI_Datatype datatype, MPI_Count count)
202 AMPI_FUNC(int, MPI_Get_elements, const MPI_Status *status, MPI_Datatype datatype, int *count)
203 AMPI_FUNC(int, MPI_Get_elements_x, const MPI_Status *status, MPI_Datatype datatype, MPI_Count *count)
204 AMPI_FUNC(int, MPI_Pack, const void *inbuf, int incount, MPI_Datatype dtype, void *outbuf,
205 int outsize, int *position, MPI_Comm comm)
206 AMPI_FUNC(int, MPI_Unpack, const void *inbuf, int insize, int *position, void *outbuf,
207 int outcount, MPI_Datatype dtype, MPI_Comm comm)
208 AMPI_FUNC(int, MPI_Pack_size, int incount,MPI_Datatype datatype,MPI_Comm comm,int *sz)
210 /***collectives***/
211 AMPI_FUNC(int, MPI_Barrier, MPI_Comm comm)
212 AMPI_FUNC(int, MPI_Ibarrier, MPI_Comm comm, MPI_Request *request)
213 AMPI_FUNC(int, MPI_Bcast, void *buf, int count, MPI_Datatype type, int root, MPI_Comm comm)
214 AMPI_FUNC(int, MPI_Ibcast, void *buf, int count, MPI_Datatype type, int root, MPI_Comm comm,
215 MPI_Request *request)
216 AMPI_FUNC(int, MPI_Gather, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
217 void *recvbuf, int recvcount, MPI_Datatype recvtype,
218 int root, MPI_Comm comm)
219 AMPI_FUNC(int, MPI_Igather, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
220 void *recvbuf, int recvcount, MPI_Datatype recvtype,
221 int root, MPI_Comm comm, MPI_Request *request)
222 AMPI_FUNC(int, MPI_Gatherv, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
223 void *recvbuf, const int *recvcounts, const int *displs,
224 MPI_Datatype recvtype, int root, MPI_Comm comm)
225 AMPI_FUNC(int, MPI_Igatherv, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
226 void *recvbuf, const int *recvcounts, const int *displs,
227 MPI_Datatype recvtype, int root, MPI_Comm comm,
228 MPI_Request *request)
229 AMPI_FUNC(int, MPI_Scatter, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
230 void *recvbuf, int recvcount, MPI_Datatype recvtype,
231 int root, MPI_Comm comm)
232 AMPI_FUNC(int, MPI_Iscatter, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
233 void *recvbuf, int recvcount, MPI_Datatype recvtype,
234 int root, MPI_Comm comm, MPI_Request *request)
235 AMPI_FUNC(int, MPI_Scatterv, const void *sendbuf, const int *sendcounts, const int *displs, MPI_Datatype sendtype,
236 void *recvbuf, int recvcount, MPI_Datatype recvtype,
237 int root, MPI_Comm comm)
238 AMPI_FUNC(int, MPI_Iscatterv, const void *sendbuf, const int *sendcounts, const int *displs, MPI_Datatype sendtype,
239 void *recvbuf, int recvcount, MPI_Datatype recvtype,
240 int root, MPI_Comm comm, MPI_Request *request)
241 AMPI_FUNC(int, MPI_Allgather, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
242 void *recvbuf, int recvcount, MPI_Datatype recvtype,
243 MPI_Comm comm)
244 AMPI_FUNC(int, MPI_Iallgather, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
245 void *recvbuf, int recvcount, MPI_Datatype recvtype,
246 MPI_Comm comm, MPI_Request* request)
247 AMPI_FUNC(int, MPI_Allgatherv, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
248 void *recvbuf, const int *recvcounts, const int *displs,
249 MPI_Datatype recvtype, MPI_Comm comm)
250 AMPI_FUNC(int, MPI_Iallgatherv, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
251 void *recvbuf, const int *recvcounts, const int *displs,
252 MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
253 AMPI_FUNC(int, MPI_Alltoall, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
254 void *recvbuf, int recvcount, MPI_Datatype recvtype,
255 MPI_Comm comm)
256 AMPI_FUNC(int, MPI_Ialltoall, const void *sendbuf, int sendcount, MPI_Datatype sendtype,
257 void *recvbuf, int recvcount, MPI_Datatype recvtype,
258 MPI_Comm comm, MPI_Request *request)
259 AMPI_FUNC(int, MPI_Alltoallv, const void *sendbuf, const int *sendcounts, const int *sdispls,
260 MPI_Datatype sendtype, void *recvbuf, const int *recvcounts,
261 const int *rdispls, MPI_Datatype recvtype, MPI_Comm comm)
262 AMPI_FUNC(int, MPI_Ialltoallv, void *sendbuf, int *sendcounts, int *sdispls,
263 MPI_Datatype sendtype, void *recvbuf, int *recvcounts,
264 int *rdispls, MPI_Datatype recvtype, MPI_Comm comm,
265 MPI_Request *request)
266 AMPI_FUNC(int, MPI_Alltoallw, const void *sendbuf, const int *sendcounts, const int *sdispls,
267 const MPI_Datatype *sendtypes, void *recvbuf, const int *recvcounts,
268 const int *rdispls, const MPI_Datatype *recvtypes, MPI_Comm comm)
269 AMPI_FUNC(int, MPI_Ialltoallw, const void *sendbuf, const int *sendcounts, const int *sdispls,
270 const MPI_Datatype *sendtypes, void *recvbuf, const int *recvcounts,
271 const int *rdispls, const MPI_Datatype *recvtypes, MPI_Comm comm,
272 MPI_Request *request)
273 AMPI_FUNC(int, MPI_Reduce, const void *inbuf, void *outbuf, int count, MPI_Datatype type,
274 MPI_Op op, int root, MPI_Comm comm)
275 AMPI_FUNC(int, MPI_Ireduce, const void *sendbuf, void *recvbuf, int count, MPI_Datatype type,
276 MPI_Op op, int root, MPI_Comm comm, MPI_Request *request)
277 AMPI_FUNC(int, MPI_Allreduce, const void *inbuf, void *outbuf, int count, MPI_Datatype type,
278 MPI_Op op, MPI_Comm comm)
279 AMPI_FUNC(int, MPI_Iallreduce, const void *inbuf, void *outbuf, int count, MPI_Datatype type,
280 MPI_Op op, MPI_Comm comm, MPI_Request *request)
281 AMPI_FUNC(int, MPI_Reduce_local, const void *inbuf, void *outbuf, int count,
282 MPI_Datatype datatype, MPI_Op op)
283 AMPI_FUNC(int, MPI_Reduce_scatter_block, const void* sendbuf, void* recvbuf, int count,
284 MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
285 AMPI_FUNC(int, MPI_Ireduce_scatter_block, const void* sendbuf, void* recvbuf, int count,
286 MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
287 AMPI_FUNC(int, MPI_Reduce_scatter, const void* sendbuf, void* recvbuf, const int *recvcounts,
288 MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
289 AMPI_FUNC(int, MPI_Ireduce_scatter, const void* sendbuf, void* recvbuf, const int *recvcounts,
290 MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
291 AMPI_FUNC(int, MPI_Scan, const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
292 MPI_Op op, MPI_Comm comm )
293 AMPI_FUNC(int, MPI_Iscan, const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
294 MPI_Op op, MPI_Comm comm, MPI_Request *request)
295 AMPI_FUNC(int, MPI_Exscan, const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
296 MPI_Op op, MPI_Comm comm)
297 AMPI_FUNC(int, MPI_Iexscan, const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
298 MPI_Op op, MPI_Comm comm, MPI_Request *request)
300 /***neighborhood collectives***/
301 AMPI_FUNC(int, MPI_Neighbor_alltoall, const void* sendbuf, int sendcount, MPI_Datatype sendtype,
302 void* recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
303 AMPI_FUNC(int, MPI_Ineighbor_alltoall, const void* sendbuf, int sendcount, MPI_Datatype sendtype,
304 void* recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm,
305 MPI_Request* request)
306 AMPI_FUNC(int, MPI_Neighbor_alltoallv, const void* sendbuf, const int* sendcounts, const int* sdispls,
307 MPI_Datatype sendtype, void* recvbuf, const int* recvcounts, const int* rdispls,
308 MPI_Datatype recvtype, MPI_Comm comm)
309 AMPI_FUNC(int, MPI_Ineighbor_alltoallv, const void* sendbuf, const int* sendcounts, const int* sdispls,
310 MPI_Datatype sendtype, void* recvbuf, const int* recvcounts, const int* rdispls,
311 MPI_Datatype recvtype, MPI_Comm comm, MPI_Request* request)
312 AMPI_FUNC(int, MPI_Neighbor_alltoallw, const void* sendbuf, const int* sendcounts, const MPI_Aint* sdipls,
313 const MPI_Datatype* sendtypes, void* recvbuf, const int* recvcounts, const MPI_Aint* rdispls,
314 const MPI_Datatype* recvtypes, MPI_Comm comm)
315 AMPI_FUNC(int, MPI_Ineighbor_alltoallw, const void* sendbuf, const int* sendcounts, const MPI_Aint* sdispls,
316 const MPI_Datatype* sendtypes, void* recvbuf, const int* recvcounts, const MPI_Aint* rdispls,
317 const MPI_Datatype* recvtypes, MPI_Comm comm, MPI_Request* request)
318 AMPI_FUNC(int, MPI_Neighbor_allgather, const void* sendbuf, int sendcount, MPI_Datatype sendtype,
319 void* recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
320 AMPI_FUNC(int, MPI_Ineighbor_allgather, const void* sendbuf, int sendcount, MPI_Datatype sendtype,
321 void* recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm,
322 MPI_Request *request)
323 AMPI_FUNC(int, MPI_Neighbor_allgatherv, const void* sendbuf, int sendcount, MPI_Datatype sendtype,
324 void* recvbuf, const int* recvcounts, const int* displs, MPI_Datatype recvtype,
325 MPI_Comm comm)
326 AMPI_FUNC(int, MPI_Ineighbor_allgatherv, const void* sendbuf, int sendcount, MPI_Datatype sendtype,
327 void* recvbuf, const int* recvcounts, const int* displs, MPI_Datatype recvtype,
328 MPI_Comm comm, MPI_Request *request)
330 /***ops***/
331 AMPI_FUNC(int, MPI_Op_create, MPI_User_function *function, int commute, MPI_Op *op)
332 AMPI_FUNC(int, MPI_Op_free, MPI_Op *op)
333 AMPI_FUNC(int, MPI_Op_commutative, MPI_Op op, int* commute)
335 /***groups***/
336 AMPI_FUNC(int, MPI_Group_size, MPI_Group group, int *size)
337 AMPI_FUNC(int, MPI_Group_rank, MPI_Group group, int *rank)
338 AMPI_FUNC(int, MPI_Group_translate_ranks, MPI_Group group1, int n, const int *ranks1, MPI_Group group2, int *ranks2)
339 AMPI_FUNC(int, MPI_Group_compare, MPI_Group group1,MPI_Group group2, int *result)
340 AMPI_FUNC(int, MPI_Comm_group, MPI_Comm comm, MPI_Group *group)
341 AMPI_FUNC(int, MPI_Group_union, MPI_Group group1, MPI_Group group2, MPI_Group *newgroup)
342 AMPI_FUNC(int, MPI_Group_intersection, MPI_Group group1, MPI_Group group2, MPI_Group *newgroup)
343 AMPI_FUNC(int, MPI_Group_difference, MPI_Group group1, MPI_Group group2, MPI_Group *newgroup)
344 AMPI_FUNC(int, MPI_Group_incl, MPI_Group group, int n, const int *ranks, MPI_Group *newgroup)
345 AMPI_FUNC(int, MPI_Group_excl, MPI_Group group, int n, const int *ranks, MPI_Group *newgroup)
346 AMPI_FUNC(int, MPI_Group_range_incl, MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup)
347 AMPI_FUNC(int, MPI_Group_range_excl, MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup)
348 AMPI_FUNC(int, MPI_Group_free, MPI_Group *group)
350 /***communicators***/
351 AMPI_FUNC(int, MPI_Intercomm_create, MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm,
352 int remote_leader, int tag, MPI_Comm *newintercomm)
353 AMPI_FUNC(int, MPI_Intercomm_merge, MPI_Comm intercomm, int high, MPI_Comm *newintracomm)
354 AMPI_FUNC(int, MPI_Comm_create, MPI_Comm comm, MPI_Group group, MPI_Comm* newcomm)
355 AMPI_FUNC(int, MPI_Comm_create_group, MPI_Comm comm, MPI_Group group, int tag, MPI_Comm *newcomm)
356 AMPI_FUNC(int, MPI_Comm_size, MPI_Comm comm, int *size)
357 AMPI_FUNC(int, MPI_Comm_rank, MPI_Comm comm, int *rank)
358 AMPI_FUNC(int, MPI_Comm_compare, MPI_Comm comm1,MPI_Comm comm2, int *result)
359 AMPI_FUNC(int, MPI_Comm_split, MPI_Comm src, int color, int key, MPI_Comm *dest)
360 AMPI_FUNC(int, MPI_Comm_split_type, MPI_Comm src, int split_type, int key, MPI_Info info, MPI_Comm *dest)
361 AMPI_FUNC(int, MPI_Comm_dup, MPI_Comm src, MPI_Comm *dest)
362 AMPI_FUNC(int, MPI_Comm_idup, MPI_Comm comm, MPI_Comm *newcomm, MPI_Request *request)
363 AMPI_FUNC(int, MPI_Comm_dup_with_info, MPI_Comm src, MPI_Info info, MPI_Comm *dest)
364 AMPI_FUNC(int, MPI_Comm_idup_with_info, MPI_Comm src, MPI_Info info, MPI_Comm *dest, MPI_Request *request)
365 AMPI_FUNC(int, MPI_Comm_free, MPI_Comm *comm)
366 AMPI_FUNC(int, MPI_Comm_test_inter, MPI_Comm comm, int *flag)
367 AMPI_FUNC(int, MPI_Comm_remote_size, MPI_Comm comm, int *size)
368 AMPI_FUNC(int, MPI_Comm_remote_group, MPI_Comm comm, MPI_Group *group)
369 AMPI_FUNC(int, MPI_Comm_set_name, MPI_Comm comm, const char *name)
370 AMPI_FUNC(int, MPI_Comm_get_name, MPI_Comm comm, char *comm_name, int *resultlen)
371 AMPI_FUNC(int, MPI_Comm_set_info, MPI_Comm comm, MPI_Info info)
372 AMPI_FUNC(int, MPI_Comm_get_info, MPI_Comm comm, MPI_Info *info)
373 AMPI_FUNC(int, MPI_Comm_call_errhandler, MPI_Comm comm, int errorcode)
374 AMPI_FUNC(int, MPI_Comm_create_errhandler, MPI_Comm_errhandler_fn *function, MPI_Errhandler *errhandler)
375 AMPI_FUNC(int, MPI_Comm_set_errhandler, MPI_Comm comm, MPI_Errhandler errhandler)
376 AMPI_FUNC(int, MPI_Comm_get_errhandler, MPI_Comm comm, MPI_Errhandler *errhandler)
377 AMPI_FUNC(int, MPI_Comm_free_errhandler, MPI_Errhandler *errhandler)
378 AMPI_FUNC(int, MPI_Comm_create_keyval, MPI_Comm_copy_attr_function *copy_fn, MPI_Comm_delete_attr_function *delete_fn,
379 int *keyval, void* extra_state)
380 AMPI_FUNC(int, MPI_Comm_free_keyval, int *keyval)
381 AMPI_FUNC(int, MPI_Comm_set_attr, MPI_Comm comm, int keyval, void* attribute_val)
382 AMPI_FUNC(int, MPI_Comm_get_attr, MPI_Comm comm, int keyval, void *attribute_val, int *flag)
383 AMPI_FUNC(int, MPI_Comm_delete_attr, MPI_Comm comm, int keyval)
385 /***keyvals/attributes***/
386 AMPI_FUNC(int, MPI_Keyval_create, MPI_Copy_function *copy_fn, MPI_Delete_function *delete_fn,
387 int *keyval, void* extra_state)
388 AMPI_FUNC(int, MPI_Keyval_free, int *keyval)
389 AMPI_FUNC(int, MPI_Attr_put, MPI_Comm comm, int keyval, void* attribute_val)
390 AMPI_FUNC(int, MPI_Attr_get, MPI_Comm comm, int keyval, void *attribute_val, int *flag)
391 AMPI_FUNC(int, MPI_Attr_delete, MPI_Comm comm, int keyval)
393 /***topologies***/
394 AMPI_FUNC(int, MPI_Cart_create, MPI_Comm comm_old, int ndims, const int *dims,
395 const int *periods, int reorder, MPI_Comm *comm_cart)
396 AMPI_FUNC(int, MPI_Graph_create, MPI_Comm comm_old, int nnodes, const int *index,
397 const int *edges, int reorder, MPI_Comm *comm_graph)
398 AMPI_FUNC(int, MPI_Dist_graph_create_adjacent, MPI_Comm comm_old, int indegree, const int sources[],
399 const int sourceweights[], int outdegree,
400 const int destinations[], const int destweights[],
401 MPI_Info info, int reorder, MPI_Comm *comm_dist_graph)
402 AMPI_FUNC(int, MPI_Dist_graph_create, MPI_Comm comm_old, int n, const int sources[], const int degrees[],
403 const int destintations[], const int weights[], MPI_Info info,
404 int reorder, MPI_Comm *comm_dist_graph)
405 AMPI_FUNC(int, MPI_Topo_test, MPI_Comm comm, int *status)
406 AMPI_FUNC(int, MPI_Cart_map, MPI_Comm comm, int ndims, const int *dims, const int *periods,
407 int *newrank)
408 AMPI_FUNC(int, MPI_Graph_map, MPI_Comm comm, int nnodes, const int *index, const int *edges,
409 int *newrank)
410 AMPI_FUNC(int, MPI_Cartdim_get, MPI_Comm comm, int *ndims)
411 AMPI_FUNC(int, MPI_Cart_get, MPI_Comm comm, int maxdims, int *dims, int *periods, int *coords)
412 AMPI_FUNC(int, MPI_Cart_rank, MPI_Comm comm, const int *coords, int *rank)
413 AMPI_FUNC(int, MPI_Cart_coords, MPI_Comm comm, int rank, int maxdims, int *coords)
414 AMPI_FUNC(int, MPI_Cart_shift, MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest)
415 AMPI_FUNC(int, MPI_Graphdims_get, MPI_Comm comm, int *nnodes, int *nedges)
416 AMPI_FUNC(int, MPI_Graph_get, MPI_Comm comm, int maxindex, int maxedges, int *index, int *edges)
417 AMPI_FUNC(int, MPI_Graph_neighbors_count, MPI_Comm comm, int rank, int *nneighbors)
418 AMPI_FUNC(int, MPI_Graph_neighbors, MPI_Comm comm, int rank, int maxneighbors, int *neighbors)
419 AMPI_FUNC(int, MPI_Dims_create, int nnodes, int ndims, int *dims)
420 AMPI_FUNC(int, MPI_Cart_sub, MPI_Comm comm, const int *remain_dims, MPI_Comm *newcomm)
421 AMPI_FUNC(int, MPI_Dist_graph_neighbors, MPI_Comm comm, int maxindegree, int sources[], int sourceweights[],
422 int maxoutdegree, int destinations[], int destweights[])
423 AMPI_FUNC(int, MPI_Dist_graph_neighbors_count, MPI_Comm comm, int *indegree, int *outdegree, int *weighted)
425 /***environment management***/
426 AMPI_FUNC(int, MPI_Errhandler_create, MPI_Handler_function *function, MPI_Errhandler *errhandler)
427 AMPI_FUNC(int, MPI_Errhandler_set, MPI_Comm comm, MPI_Errhandler errhandler)
428 AMPI_FUNC(int, MPI_Errhandler_get, MPI_Comm comm, MPI_Errhandler *errhandler)
429 AMPI_FUNC(int, MPI_Errhandler_free, MPI_Errhandler *errhandler)
430 AMPI_FUNC(int, MPI_Add_error_code, int errorclass, int *errorcode)
431 AMPI_FUNC(int, MPI_Add_error_class, int *errorclass)
432 AMPI_FUNC(int, MPI_Add_error_string, int errorcode, const char *errorstring)
433 AMPI_FUNC(int, MPI_Error_class, int errorcode, int *errorclass)
434 AMPI_FUNC(int, MPI_Error_string, int errorcode, char *string, int *resultlen)
435 AMPI_FUNC(int, MPI_Get_version, int *version, int *subversion)
436 AMPI_FUNC(int, MPI_Get_library_version, char *version, int *resultlen)
437 AMPI_FUNC(int, MPI_Get_processor_name, char *name, int *resultlen)
438 AMPI_FUNC(double, MPI_Wtime, void)
439 AMPI_FUNC(double, MPI_Wtick, void)
440 AMPI_FUNC(int, MPI_Is_thread_main, int *flag)
441 AMPI_FUNC(int, MPI_Query_thread, int *provided)
442 AMPI_FUNC(int, MPI_Init_thread, int *argc, char*** argv, int required, int *provided)
443 AMPI_FUNC(int, MPI_Init, int *argc, char*** argv)
444 AMPI_FUNC(int, MPI_Initialized, int *isInit)
445 AMPI_FUNC(int, MPI_Finalize, void)
446 AMPI_FUNC(int, MPI_Finalized, int *finalized)
447 AMPI_FUNC(int, MPI_Abort, MPI_Comm comm, int errorcode)
448 AMPI_FUNC(int, MPI_Pcontrol, const int level, ...)
450 /*********************One sided communication routines *****************/
451 #ifndef MPI_WIN_NULL_DELETE_FN
452 #define MPI_WIN_NULL_DELETE_FN MPI_win_null_delete_fn
453 #endif
454 #ifndef MPI_WIN_NULL_COPY_FN
455 #define MPI_WIN_NULL_COPY_FN MPI_win_null_copy_fn
456 #endif
457 #ifndef MPI_WIN_DUP_FN
458 #define MPI_WIN_DUP_FN MPI_win_dup_fn
459 #endif
461 AMPI_CUSTOM_FUNC(int, MPI_WIN_NULL_COPY_FN , MPI_Win, int, void *, void *, void *, int * )
462 AMPI_CUSTOM_FUNC(int, MPI_WIN_NULL_DELETE_FN , MPI_Win, int, void *, void * )
463 AMPI_CUSTOM_FUNC(int, MPI_WIN_DUP_FN , MPI_Win, int, void *, void *, void *, int * )
465 /***windows/rma***/
466 AMPI_FUNC(int, MPI_Win_create, void *base, MPI_Aint size, int disp_unit,
467 MPI_Info info, MPI_Comm comm, MPI_Win *newwin)
468 AMPI_FUNC(int, MPI_Win_free, MPI_Win *win)
469 AMPI_FUNC(int, MPI_Win_create_errhandler, MPI_Win_errhandler_function *win_errhandler_fn,
470 MPI_Errhandler *errhandler)
471 AMPI_FUNC(int, MPI_Win_call_errhandler, MPI_Win win, int errorcode)
472 AMPI_FUNC(int, MPI_Win_get_errhandler, MPI_Win win, MPI_Errhandler *errhandler)
473 AMPI_FUNC(int, MPI_Win_set_errhandler, MPI_Win win, MPI_Errhandler errhandler)
474 AMPI_FUNC(int, MPI_Win_create_keyval, MPI_Win_copy_attr_function *copy_fn,
475 MPI_Win_delete_attr_function *delete_fn,
476 int *keyval, void *extra_state)
477 AMPI_FUNC(int, MPI_Win_free_keyval, int *keyval)
478 AMPI_FUNC(int, MPI_Win_delete_attr, MPI_Win win, int key)
479 AMPI_FUNC(int, MPI_Win_get_attr, MPI_Win win, int win_keyval, void *attribute_val, int *flag)
480 AMPI_FUNC(int, MPI_Win_set_attr, MPI_Win win, int win_keyval, void *attribute_val)
481 AMPI_FUNC(int, MPI_Win_get_group, MPI_Win win, MPI_Group *group)
482 AMPI_FUNC(int, MPI_Win_set_name, MPI_Win win, const char *name)
483 AMPI_FUNC(int, MPI_Win_get_name, MPI_Win win, char *name, int *length)
484 AMPI_FUNC(int, MPI_Win_set_info, MPI_Win win, MPI_Info info)
485 AMPI_FUNC(int, MPI_Win_get_info, MPI_Win win, MPI_Info *info)
486 AMPI_FUNC(int, MPI_Win_fence, int assertion, MPI_Win win)
487 AMPI_FUNC(int, MPI_Win_lock, int lock_type, int rank, int assert, MPI_Win win)
488 AMPI_FUNC(int, MPI_Win_unlock, int rank, MPI_Win win)
489 AMPI_FUNC(int, MPI_Win_post, MPI_Group group, int assertion, MPI_Win win)
490 AMPI_FUNC(int, MPI_Win_wait, MPI_Win win)
491 AMPI_FUNC(int, MPI_Win_start, MPI_Group group, int assertion, MPI_Win win)
492 AMPI_FUNC(int, MPI_Win_complete, MPI_Win win)
493 AMPI_FUNC(int, MPI_Win_test, MPI_Win win, int *flag)
494 AMPI_FUNC(int, MPI_Alloc_mem, MPI_Aint size, MPI_Info info, void *baseptr)
495 AMPI_FUNC(int, MPI_Free_mem, void *base)
496 AMPI_FUNC(int, MPI_Put, const void *orgaddr, int orgcnt, MPI_Datatype orgtype, int rank,
497 MPI_Aint targdisp, int targcnt, MPI_Datatype targtype, MPI_Win win)
498 AMPI_FUNC(int, MPI_Get, void *orgaddr, int orgcnt, MPI_Datatype orgtype, int rank,
499 MPI_Aint targdisp, int targcnt, MPI_Datatype targtype, MPI_Win win)
500 AMPI_FUNC(int, MPI_Accumulate, const void *orgaddr, int orgcnt, MPI_Datatype orgtype, int rank,
501 MPI_Aint targdisp, int targcnt, MPI_Datatype targtype,
502 MPI_Op op, MPI_Win win)
503 AMPI_FUNC(int, MPI_Get_accumulate, const void *orgaddr, int orgcnt, MPI_Datatype orgtype,
504 void *resaddr, int rescnt, MPI_Datatype restype,
505 int rank, MPI_Aint targdisp, int targcnt,
506 MPI_Datatype targtype, MPI_Op op, MPI_Win win)
507 AMPI_FUNC(int, MPI_Rput, const void *orgaddr, int orgcnt, MPI_Datatype orgtype, int targrank,
508 MPI_Aint targdisp, int targcnt, MPI_Datatype targtype, MPI_Win win,
509 MPI_Request *request)
510 AMPI_FUNC(int, MPI_Rget, void *orgaddr, int orgcnt, MPI_Datatype orgtype, int rank,
511 MPI_Aint targdisp, int targcnt, MPI_Datatype targtype, MPI_Win win,
512 MPI_Request *request)
513 AMPI_FUNC(int, MPI_Raccumulate, const void *orgaddr, int orgcnt, MPI_Datatype orgtype, int rank,
514 MPI_Aint targdisp, int targcnt, MPI_Datatype targtype,
515 MPI_Op op, MPI_Win win, MPI_Request *request)
516 AMPI_FUNC(int, MPI_Rget_accumulate, const void *orgaddr, int orgcnt, MPI_Datatype orgtype,
517 void *resaddr, int rescnt, MPI_Datatype restype,
518 int rank, MPI_Aint targdisp, int targcnt,
519 MPI_Datatype targtype, MPI_Op op, MPI_Win win,
520 MPI_Request *request)
521 AMPI_FUNC(int, MPI_Fetch_and_op, const void *orgaddr, void *resaddr, MPI_Datatype type,
522 int rank, MPI_Aint targdisp, MPI_Op op, MPI_Win win)
523 AMPI_FUNC(int, MPI_Compare_and_swap, const void *orgaddr, const void *compaddr, void *resaddr,
524 MPI_Datatype type, int rank, MPI_Aint targdisp,
525 MPI_Win win)
527 /***infos***/
528 AMPI_FUNC(int, MPI_Info_create, MPI_Info *info)
529 AMPI_FUNC(int, MPI_Info_set, MPI_Info info, const char *key, const char *value)
530 AMPI_FUNC(int, MPI_Info_delete, MPI_Info info, const char *key)
531 AMPI_FUNC(int, MPI_Info_get, MPI_Info info, const char *key, int valuelen, char *value, int *flag)
532 AMPI_FUNC(int, MPI_Info_get_valuelen, MPI_Info info, const char *key, int *valuelen, int *flag)
533 AMPI_FUNC(int, MPI_Info_get_nkeys, MPI_Info info, int *nkeys)
534 AMPI_FUNC(int, MPI_Info_get_nthkey, MPI_Info info, int n, char *key)
535 AMPI_FUNC(int, MPI_Info_dup, MPI_Info info, MPI_Info *newinfo)
536 AMPI_FUNC(int, MPI_Info_free, MPI_Info *info)
539 /***MPIX***/
540 AMPI_FUNC(int, MPIX_Grequest_start, MPI_Grequest_query_function *query_fn,
541 MPI_Grequest_free_function *free_fn, MPI_Grequest_cancel_function *cancel_fn,
542 MPIX_Grequest_poll_function *poll_fn, void *extra_state, MPI_Request *request)
543 AMPI_FUNC(int, MPIX_Grequest_class_create, MPI_Grequest_query_function *query_fn,
544 MPI_Grequest_free_function *free_fn, MPI_Grequest_cancel_function *cancel_fn,
545 MPIX_Grequest_poll_function *poll_fn, MPIX_Grequest_wait_function *wait_fn,
546 MPIX_Grequest_class *greq_class)
547 AMPI_FUNC(int, MPIX_Grequest_class_allocate, MPIX_Grequest_class greq_class,
548 void *extra_state, MPI_Request *request)
551 #include "mpio_functions.h"
554 /*** AMPI Extensions ***/
555 AMPI_CUSTOM_FUNC(int, AMPI_Migrate, MPI_Info hints)
556 AMPI_CUSTOM_FUNC(int, AMPI_Load_start_measure, void)
557 AMPI_CUSTOM_FUNC(int, AMPI_Load_stop_measure, void)
558 AMPI_CUSTOM_FUNC(int, AMPI_Load_reset_measure, void)
559 AMPI_CUSTOM_FUNC(int, AMPI_Load_set_value, double value)
560 AMPI_CUSTOM_FUNC(int, AMPI_Migrate_to_pe, int dest)
561 AMPI_CUSTOM_FUNC(int, AMPI_Set_migratable, int mig)
562 AMPI_CUSTOM_FUNC(int, AMPI_Register_pup, MPI_PupFn fn, void *data, int *idx)
563 AMPI_CUSTOM_FUNC(int, AMPI_Get_pup_data, int idx, void *data)
564 AMPI_CUSTOM_FUNC(int, AMPI_Register_main, MPI_MainFn mainFn, const char *name)
565 AMPI_CUSTOM_FUNC(int, AMPI_Register_about_to_migrate, MPI_MigrateFn fn)
566 AMPI_CUSTOM_FUNC(int, AMPI_Register_just_migrated, MPI_MigrateFn fn)
567 AMPI_CUSTOM_FUNC(int, AMPI_Iget, MPI_Aint orgdisp, int orgcnt, MPI_Datatype orgtype, int rank,
568 MPI_Aint targdisp, int targcnt, MPI_Datatype targtype,
569 MPI_Win win, MPI_Request *request)
570 AMPI_CUSTOM_FUNC(int, AMPI_Iget_wait, MPI_Request *request, MPI_Status *status, MPI_Win win)
571 AMPI_CUSTOM_FUNC(int, AMPI_Iget_free, MPI_Request *request, MPI_Status *status, MPI_Win win)
572 AMPI_CUSTOM_FUNC(int, AMPI_Iget_data, void *data, MPI_Status status)
573 AMPI_CUSTOM_FUNC(int, AMPI_Type_is_contiguous, MPI_Datatype datatype, int *flag)
574 #if CMK_FAULT_EVAC
575 AMPI_CUSTOM_FUNC(int, AMPI_Evacuate, void)
576 #endif
577 AMPI_CUSTOM_FUNC(int, AMPI_Yield, void)
578 AMPI_CUSTOM_FUNC(int, AMPI_Suspend, void)
579 AMPI_CUSTOM_FUNC(int, AMPI_Resume, int dest, MPI_Comm comm)
580 AMPI_CUSTOM_FUNC(int, AMPI_Print, const char *str)
581 AMPI_CUSTOM_FUNC(int, AMPI_Trace_begin, void)
582 AMPI_CUSTOM_FUNC(int, AMPI_Trace_end, void)
583 AMPI_CUSTOM_FUNC(int, AMPI_Alltoall_medium, void *sendbuf, int sendcount, MPI_Datatype sendtype,
584 void *recvbuf, int recvcount, MPI_Datatype recvtype,
585 MPI_Comm comm)
586 AMPI_CUSTOM_FUNC(int, AMPI_Alltoall_long, void *sendbuf, int sendcount, MPI_Datatype sendtype,
587 void *recvbuf, int recvcount, MPI_Datatype recvtype,
588 MPI_Comm comm)
590 #if CMK_BIGSIM_CHARM
591 AMPI_CUSTOM_FUNC(int, AMPI_Set_start_event, MPI_Comm comm)
592 AMPI_CUSTOM_FUNC(int, AMPI_Set_end_event, void)
593 AMPI_CUSTOM_FUNC(void, beginTraceBigSim, char* msg)
594 AMPI_CUSTOM_FUNC(void, endTraceBigSim, char* msg, char* param)
595 #endif
597 #ifdef __cplusplus
598 #if CMK_CUDA
599 AMPI_CUSTOM_FUNC(int, AMPI_GPU_Iinvoke_wr, hapiWorkRequest *to_call, MPI_Request *request)
600 AMPI_CUSTOM_FUNC(int, AMPI_GPU_Iinvoke, cudaStream_t stream, MPI_Request *request)
601 AMPI_CUSTOM_FUNC(int, AMPI_GPU_Invoke_wr, hapiWorkRequest *to_call)
602 AMPI_CUSTOM_FUNC(int, AMPI_GPU_Invoke, cudaStream_t stream)
603 #endif
604 #endif
606 /* Execute this shell command , just like "system, )") */
607 AMPI_CUSTOM_FUNC(int, AMPI_System, const char *cmd)
609 /* Determine approximate depth of stack at the point of this call */
610 AMPI_CUSTOM_FUNC(long, ampiCurrentStackUsage, void)
612 #endif /* !defined AMPI_NOIMPL_ONLY */
615 /* Functions unsupported in AMPI */
617 /* Disable deprecation warnings added in ampi.h */
618 #if defined __GNUC__ || defined __clang__
619 # pragma GCC diagnostic push
620 # pragma GCC diagnostic ignored "-Wdeprecated-declarations"
621 #elif defined _MSC_VER
622 # pragma warning(push)
623 # pragma warning(disable : 4996)
624 #elif defined __INTEL_COMPILER
625 # pragma warning push
626 # pragma warning disable 1478
627 #endif
629 #ifndef AMPI_FUNC_NOIMPL
630 # error You must define AMPI_FUNC_NOIMPL before including this file!
631 #endif
633 /* MPI 3.1 standards compliance overview.
634 * This list contains all MPI functions not supported in AMPI currently.
637 /* A.2.1 Point-to-Point Communication C Bindings */
639 /* A.2.2 Datatypes C Bindings */
641 AMPI_FUNC_NOIMPL(int, MPI_Pack_external, const char datarep[], const void *inbuf, int incount, MPI_Datatype datatype, void *outbuf, MPI_Aint outsize, MPI_Aint *position)
642 AMPI_FUNC_NOIMPL(int, MPI_Pack_external_size, const char datarep[], int incount, MPI_Datatype datatype, MPI_Aint *size)
643 AMPI_FUNC_NOIMPL(int, MPI_Unpack_external, const char datarep[], const void *inbuf, MPI_Aint insize, MPI_Aint *position, void *outbuf, int outcount, MPI_Datatype datatype)
645 /* A.2.3 Collective Communication C Bindings */
647 /* A.2.4 Groups, Contexts, Communicators, and Caching C Bindings */
649 /* A.2.6 MPI Environmental Management C Bindings */
651 AMPI_FUNC_NOIMPL(int, MPI_File_call_errhandler, MPI_File fh, int errorcode)
652 AMPI_FUNC_NOIMPL(int, MPI_File_create_errhandler, MPI_File_errhandler_function *file_errhandler_fn, MPI_Errhandler *errhandler)
653 AMPI_FUNC_NOIMPL(int, MPI_File_get_errhandler, MPI_File file, MPI_Errhandler *errhandler)
654 AMPI_FUNC_NOIMPL(int, MPI_File_set_errhandler, MPI_File file, MPI_Errhandler errhandler)
657 /* A.2.7 The Info Object C Bindings */
659 /* A.2.8 Process Creation and Management C Bindings */
661 AMPI_FUNC_NOIMPL(int, MPI_Close_port, const char *port_name)
662 AMPI_FUNC_NOIMPL(int, MPI_Comm_accept, const char *port_name, MPI_Info info, int root, MPI_Comm comm, MPI_Comm *newcomm)
663 AMPI_FUNC_NOIMPL(int, MPI_Comm_connect, const char *port_name, MPI_Info info, int root, MPI_Comm comm, MPI_Comm *newcomm)
664 AMPI_FUNC_NOIMPL(int, MPI_Comm_disconnect, MPI_Comm *comm)
665 AMPI_FUNC_NOIMPL(int, MPI_Comm_get_parent, MPI_Comm *parent)
666 AMPI_FUNC_NOIMPL(int, MPI_Comm_join, int fd, MPI_Comm *intercomm)
667 AMPI_FUNC_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[])
668 AMPI_FUNC_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[])
669 AMPI_FUNC_NOIMPL(int, MPI_Lookup_name, const char *service_name, MPI_Info info, char *port_name)
670 AMPI_FUNC_NOIMPL(int, MPI_Open_port, MPI_Info info, char *port_name)
671 AMPI_FUNC_NOIMPL(int, MPI_Publish_name, const char *service_name, MPI_Info info, const char *port_name)
672 AMPI_FUNC_NOIMPL(int, MPI_Unpublish_name, const char *service_name, MPI_Info info, const char *port_name)
675 /* A.2.9 One-Sided Communications C Bindings */
677 AMPI_FUNC_NOIMPL(int, MPI_Win_allocate, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, void *baseptr, MPI_Win *win)
678 AMPI_FUNC_NOIMPL(int, MPI_Win_allocate_shared, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, void *baseptr, MPI_Win *win)
679 AMPI_FUNC_NOIMPL(int, MPI_Win_attach, MPI_Win win, void *base, MPI_Aint size)
680 AMPI_FUNC_NOIMPL(int, MPI_Win_create_dynamic, MPI_Info info, MPI_Comm comm, MPI_Win *win)
681 AMPI_FUNC_NOIMPL(int, MPI_Win_detach, MPI_Win win, const void *base)
682 AMPI_FUNC_NOIMPL(int, MPI_Win_flush, int rank, MPI_Win win)
683 AMPI_FUNC_NOIMPL(int, MPI_Win_flush_all, MPI_Win win)
684 AMPI_FUNC_NOIMPL(int, MPI_Win_flush_local, int rank, MPI_Win win)
685 AMPI_FUNC_NOIMPL(int, MPI_Win_flush_local_all, MPI_Win win)
686 AMPI_FUNC_NOIMPL(int, MPI_Win_lock_all, int assert, MPI_Win win)
687 AMPI_FUNC_NOIMPL(int, MPI_Win_shared_query, MPI_Win win, int rank, MPI_Aint *size, int *disp_unit, void *baseptr)
688 AMPI_FUNC_NOIMPL(int, MPI_Win_sync, MPI_Win win)
689 AMPI_FUNC_NOIMPL(int, MPI_Win_unlock_all, MPI_Win win)
692 /* A.2.10 External Interfaces C Bindings */
694 /* A.2.11 I/O C Bindings */
696 AMPI_FUNC_NOIMPL(int, MPI_CONVERSION_FN_NULL, void *userbuf, MPI_Datatype datatype, int count, void *filebuf, MPI_Offset position, void *extra_state)
697 AMPI_FUNC_NOIMPL(int, MPI_File_iread_all, MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Request *request)
698 AMPI_FUNC_NOIMPL(int, MPI_File_iread_at_all, MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Request *request)
699 AMPI_FUNC_NOIMPL(int, MPI_File_iwrite_all, MPI_File fh, const void *buf, int count, MPI_Datatype datatype, MPI_Request *request)
700 AMPI_FUNC_NOIMPL(int, MPI_File_iwrite_at_all, MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, MPI_Request *request)
701 // AMPI_FUNC_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
704 /* A.2.12 Language Bindings C Bindings */
706 AMPI_FUNC_NOIMPL(int, MPI_Status_f082f, MPI_F08_status *f08_status, MPI_Fint *f_status)
707 AMPI_FUNC_NOIMPL(int, MPI_Status_f2f08, MPI_Fint *f_status, MPI_F08_status *f08_status)
708 AMPI_FUNC_NOIMPL(int, MPI_Type_create_f90_complex, int p, int r, MPI_Datatype *newtype)
709 AMPI_FUNC_NOIMPL(int, MPI_Type_create_f90_integer, int r, MPI_Datatype *newtype)
710 AMPI_FUNC_NOIMPL(int, MPI_Type_create_f90_real, int p, int r, MPI_Datatype *newtype)
711 AMPI_FUNC_NOIMPL(int, MPI_Type_match_size, int typeclass, int size, MPI_Datatype *datatype)
712 AMPI_FUNC_NOIMPL(MPI_Fint, MPI_Message_c2f, MPI_Message message)
713 AMPI_FUNC_NOIMPL(MPI_Message, MPI_Message_f2c, MPI_Fint message)
714 AMPI_FUNC_NOIMPL(int, MPI_Status_c2f, const MPI_Status *c_status, MPI_Fint *f_status)
715 AMPI_FUNC_NOIMPL(int, MPI_Status_c2f08, const MPI_Status *c_status, MPI_F08_status *f08_status)
716 AMPI_FUNC_NOIMPL(int, MPI_Status_f082c, const MPI_F08_status *f08_status, MPI_Status *c_status)
717 AMPI_FUNC_NOIMPL(int, MPI_Status_f2c, const MPI_Fint *f_status, MPI_Status *c_status)
720 /* A.2.14 Tools / MPI Tool Information Interface C Bindings */
722 AMPI_FUNC_NOIMPL(int, MPI_T_category_changed, int *stamp)
723 AMPI_FUNC_NOIMPL(int, MPI_T_category_get_categories, int cat_index, int len, int indices[])
724 AMPI_FUNC_NOIMPL(int, MPI_T_category_get_cvars, int cat_index, int len, int indices[])
725 AMPI_FUNC_NOIMPL(int, MPI_T_category_get_index, const char *name, int *cat_index)
726 AMPI_FUNC_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)
727 AMPI_FUNC_NOIMPL(int, MPI_T_category_get_num, int *num_cat)
728 AMPI_FUNC_NOIMPL(int, MPI_T_category_get_pvars, int cat_index, int len, int indices[])
729 AMPI_FUNC_NOIMPL(int, MPI_T_cvar_get_index, const char *name, int *cvar_index)
730 AMPI_FUNC_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)
731 AMPI_FUNC_NOIMPL(int, MPI_T_cvar_get_num, int *num_cvar)
732 AMPI_FUNC_NOIMPL(int, MPI_T_cvar_handle_alloc, int cvar_index, void *obj_handle, MPI_T_cvar_handle *handle, int *count)
733 AMPI_FUNC_NOIMPL(int, MPI_T_cvar_handle_free, MPI_T_cvar_handle *handle)
734 AMPI_FUNC_NOIMPL(int, MPI_T_cvar_read, MPI_T_cvar_handle handle, void* buf)
735 AMPI_FUNC_NOIMPL(int, MPI_T_cvar_write, MPI_T_cvar_handle handle, const void* buf)
736 AMPI_FUNC_NOIMPL(int, MPI_T_enum_get_info, MPI_T_enum enumtype, int *num, char *name, int *name_len)
737 AMPI_FUNC_NOIMPL(int, MPI_T_enum_get_item, MPI_T_enum enumtype, int index, int *value, char *name, int *name_len)
738 AMPI_FUNC_NOIMPL(int, MPI_T_finalize, void)
739 AMPI_FUNC_NOIMPL(int, MPI_T_init_thread, int required, int *provided)
740 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_get_index, const char *name, int var_class, int *pvar_index)
741 AMPI_FUNC_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)
742 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_get_num, int *num_pvar)
743 AMPI_FUNC_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)
744 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_handle_free, MPI_T_pvar_session session,MPI_T_pvar_handle *handle)
745 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_read, MPI_T_pvar_session session, MPI_T_pvar_handle handle,void* buf)
746 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_readreset, MPI_T_pvar_session session,MPI_T_pvar_handle handle, void* buf)
747 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_reset, MPI_T_pvar_session session, MPI_T_pvar_handle handle)
748 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_session_create, MPI_T_pvar_session *session)
749 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_session_free, MPI_T_pvar_session *session)
750 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_start, MPI_T_pvar_session session, MPI_T_pvar_handle handle)
751 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_stop, MPI_T_pvar_session session, MPI_T_pvar_handle handle)
752 AMPI_FUNC_NOIMPL(int, MPI_T_pvar_write, MPI_T_pvar_session session, MPI_T_pvar_handle handle, const void* buf)
755 /* A.2.15 Deprecated C Bindings */
758 #if defined __GNUC__ || defined __clang__
759 # pragma GCC diagnostic pop
760 #elif defined _MSC_VER
761 # pragma warning(pop)
762 #elif defined __INTEL_COMPILER
763 # pragma warning pop
764 #endif