2 Keep this header free of:
6 * #define without #ifndef guard or #undef after use
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
16 # error You must define AMPI_FUNC before including this file!
18 #ifndef AMPI_CUSTOM_FUNC
19 # error You must define AMPI_CUSTOM_FUNC before including this file!
23 #include "hapi_functions.h"
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
33 #ifndef MPI_COMM_NULL_DELETE_FN
34 #define MPI_COMM_NULL_DELETE_FN MPI_comm_null_delete_fn
36 #ifndef MPI_COMM_DUP_FN
37 #define MPI_COMM_DUP_FN MPI_comm_dup_fn
40 #ifndef MPI_NULL_COPY_FN
41 #define MPI_NULL_COPY_FN MPI_comm_null_copy_fn
43 #ifndef MPI_NULL_DELETE_FN
44 #define MPI_NULL_DELETE_FN MPI_comm_null_delete_fn
47 #define MPI_DUP_FN MPI_comm_dup_fn
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
57 #ifndef MPI_TYPE_NULL_COPY_FN
58 #define MPI_TYPE_NULL_COPY_FN MPI_type_null_copy_fn
60 #ifndef MPI_TYPE_DUP_FN
61 #define MPI_TYPE_DUP_FN MPI_type_dup_fn
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"
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
,
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
,
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
,
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
)
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
)
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
,
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
,
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
,
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
)
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
)
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
)
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
,
408 AMPI_FUNC(int, MPI_Graph_map
, MPI_Comm comm
, int nnodes
, const int *index
, const int *edges
,
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
454 #ifndef MPI_WIN_NULL_COPY_FN
455 #define MPI_WIN_NULL_COPY_FN MPI_win_null_copy_fn
457 #ifndef MPI_WIN_DUP_FN
458 #define MPI_WIN_DUP_FN MPI_win_dup_fn
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 * )
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
,
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
)
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
)
575 AMPI_CUSTOM_FUNC(int, AMPI_Evacuate
, void)
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
,
586 AMPI_CUSTOM_FUNC(int, AMPI_Alltoall_long
, void *sendbuf
, int sendcount
, MPI_Datatype sendtype
,
587 void *recvbuf
, int recvcount
, MPI_Datatype recvtype
,
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
)
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
)
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
629 #ifndef AMPI_FUNC_NOIMPL
630 # error You must define AMPI_FUNC_NOIMPL before including this file!
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