@@ -168,6 +168,73 @@ On other processes (i.e., the workers) the function does not return
168
168
` MPI.start ` must be called with option ` MPI_TRANSPORT_ALL ` to use MPI as transport.
169
169
` mpirun -np 5 julia 06-cman-transport.jl MPI ` will run the example using MPI as transport.
170
170
171
+ ## Julia MPI-only interface
172
+
173
+ ### Communicators:
174
+ Julia interfaces to the Fortran versions of the MPI functions. Since the C and
175
+ Fortran communicators are different, if a C communicator is required (e.g., to
176
+ interface with a C library), this can be achieved with the Fortran to C
177
+ communicator conversion:
178
+
179
+ ```
180
+ juliacomm = MPI.MPI_COMM_WORLD
181
+ ccomm = MPI.CComm(juliacomm)
182
+ ```
183
+
184
+ ### Currently wrapped MPI functions
185
+ Convention: ` MPI_Fun => MPI.Fun `
186
+
187
+ #### Administrative functions
188
+ Julia Function (assuming ` import MPI ` ) | Fortran Function
189
+ ---------------------------------------|--------------------------------------------------------
190
+ ` MPI.Abort ` | [ ` MPI_Abort ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Abort.html )
191
+ ` MPI.Comm_dup ` | [ ` MPI_Comm_dup ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Comm_dup.html )
192
+ ` MPI.Comm_free ` | [ ` MPI_Comm_free ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Comm_free.html )
193
+ ` MPI.Comm_rank ` | [ ` MPI_Comm_rank ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Comm_rank.html )
194
+ ` MPI.Comm_size ` | [ ` MPI_Comm_size ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Comm_size.html )
195
+ ` MPI.Finalize ` | [ ` MPI_Finalize ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Finalize.html )
196
+ ` MPI.Finalized ` | [ ` MPI_Finalized ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Finalized.html )
197
+ ` MPI.Init ` | [ ` MPI_Init ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Init.html )
198
+ ` MPI.Initialized ` | [ ` MPI_Initialized ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Initialized.html )
199
+
200
+ #### Point-to-point communication
201
+ Julia Function (assuming ` import MPI ` ) | Fortran Function
202
+ ---------------------------------------|--------------------------------------------------------
203
+ ` MPI.Cancel! ` | [ ` MPI_Cancel ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Cancel.html )
204
+ ` MPI.Get_count ` | [ ` MPI_Get_count ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Get_count.html )
205
+ ` MPI.Iprobe ` | [ ` MPI_Iprobe ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Iprobe.html )
206
+ ` MPI.Irecv! ` | [ ` MPI_Irecv ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Irecv.html )
207
+ ` MPI.Isend ` | [ ` MPI_Isend ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Isend.html )
208
+ ` MPI.Probe ` | [ ` MPI_Probe ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Probe.html )
209
+ ` MPI.Recv! ` | [ ` MPI_Recv ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Recv.html )
210
+ ` MPI.Send ` | [ ` MPI_Send ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Send.html )
211
+ ` MPI.Test! ` | [ ` MPI_Test ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Test.html )
212
+ ` MPI.Testall! ` | [ ` MPI_Testall ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Testall.html )
213
+ ` MPI.Testany! ` | [ ` MPI_Testany ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Testany.html )
214
+ ` MPI.Testsome! ` | [ ` MPI_Testsome ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Testsome.html )
215
+ ` MPI.Wait! ` | [ ` MPI_Wait ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Wait.html )
216
+ ` MPI.Waitall! ` | [ ` MPI_Waitall ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Waitall.html )
217
+ ` MPI.Waitany! ` | [ ` MPI_Waitany ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Waitany.html )
218
+ ` MPI.Waitsome! ` | [ ` MPI_Waitsome ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Waitsome.html )
219
+
220
+
221
+ #### Collective communication
222
+ Julia Function (assuming ` import MPI ` ) | Fortran Function
223
+ ---------------------------------------|--------------------------------------------------------
224
+ ` MPI.Allgather ` | [ ` MPI_Allgather ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Allgather.html )
225
+ ` MPI.Allgatherv ` | [ ` MPI_Allgatherv ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Allgatherv.html )
226
+ ` MPI.Alltoall ` | [ ` MPI_Alltoall ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Alltoall.html )
227
+ ` MPI.Alltoallv ` | [ ` MPI_Alltoallv ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Alltoallv.html )
228
+ ` MPI.Barrier ` | [ ` MPI_Barrier ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Barrier.html )
229
+ ` MPI.Bcast! ` | [ ` MPI_Bcast ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Bcast.html )
230
+ ` MPI.ExScan ` | [ ` MPI_Exscan ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Exscan.html )
231
+ ` MPI.Gather ` | [ ` MPI_Gather ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Gather.html )
232
+ ` MPI.Gatherv ` | [ ` MPI_Gatherv ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Gatherv.html )
233
+ ` MPI.Reduce ` | [ ` MPI_Reduce ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Reduce.html )
234
+ ` MPI.Scan ` | [ ` MPI_Scan ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Scan.html )
235
+ ` MPI.Scatter ` | [ ` MPI_Scatter ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Scatter.html )
236
+ ` MPI.Scatterv ` | [ ` MPI_Scatterv ` ] ( http://www.mpich.org/static/docs/latest/www3/MPI_Scatterv.html )
237
+
171
238
172
239
[ Julia ] : http://julialang.org/
173
240
[ MPI ] : http://www.mpi-forum.org/
0 commit comments