The tables in this appendix summarize the C and FORTRAN binding information for all of the subroutines listed in this book.
Note: | FORTRAN refers to FORTRAN 77 bindings which are officially supported for MPI. However, FORTRAN 77 bindings can be used by Fortran 90. Fortran 90 and High Performance Fortran (HPF) offer array section and assumed shape arrays as parameters on calls. These are not safe with MPI. |
Table 6 lists the C and FORTRAN bindings for nonblocking collective communication
routines.
Table 6. Bindings for Nonblocking Collective Communication
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPE_Ibarrier | int MPE_Ibarrier(MPI_Comm comm,MPI_Request *request); |
MPE_IBARRIER | MPE_IBARRIER(INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Ibcast | int MPE_Ibcast(void* buffer,int count,MPI_Datatype datatype,int root,MPI_Comm comm,MPI_Request *request); |
MPE_IBCAST | MPE_IBCAST(CHOICE BUFFER,INTEGER COUNT,INTEGER DATATYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Igather | int MPE_Igather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root, MPI_Comm comm,MPI_Request *request); |
MPE_IGATHER | MPE_IGATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Igatherv | int MPE_Igatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs,MPI_Datatype recvtype,int root,MPI_Comm comm,MPI_Request *request); |
MPE_IGATHERV | MPE_IGATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE, CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Iscatter | int MPE_Iscatter(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm,MPI_Request *request); |
MPE_ISCATTER | MPE_ISCATTER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Iscatterv | int MPE_Iscatterv(void* sendbuf,int *sendcounts,int *displs,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm,MPI_Request *request); |
MPE_ISCATTERV | MPE_ISCATTERV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER DISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Iallgather | int MPE_Iallgather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype, MPI_Comm comm,MPI_Request *request); |
MPE_IALLGATHER | MPE_IALLGATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE, CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Iallgatherv | int MPE_Iallgatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs,MPI_Datatype recvtype,MPI_Comm comm,MPI_Request *request); |
MPE_IALLGATHERV | MPE_IALLGATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE, CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Ialltoall | int MPE_Ialltoall(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,MPI_Comm comm,MPI_Request *request); |
MPE_IALLTOALL | MPE_IALLTOALL(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Ialltoallv | int MPE_Ialltoallv(void* sendbuf,int *sendcounts,int *sdispls,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *rdispls,MPI_Datatype recvtype,MPI_Comm comm,MPI_Request *request); |
MPE_IALLTOALLV | MPE_IALLTOALV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER SDISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER RDISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Ireduce | int MPE_Ireduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,int root,MPI_Comm comm,MPI_Request *request); |
MPE_IREDUCE | MPE_IREDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER ROOT,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Iallreduce | int MPE_Iallreduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm,MPI_Request *request); |
MPE_IALLREDUCE | MPE_IALLREDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Ireduce_scatter | int MPE_Ireduce_scatter(void* sendbuf,void* recvbuf,int *recvcounts,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm,MPI_Request *request); |
MPE_IREDUCE_SCATTER | MPE_IREDUCE_SCATTER(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPE_Iscan | int MPE_Iscan(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm,MPI_Request *request); |
MPE_ISCAN | MPE_ISCAN(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
Table 7 lists the C and FORTRAN bindings for point-to-point communication and
derived datatype routines.
Table 7. Bindings for Point-to-Point Communication and Derived Datatypes
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_Send | int MPI_Send(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm); |
MPI_SEND | MPI_SEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM, INTEGER IERROR) |
MPI_Recv | int MPI_Recv(void* buf,int count,MPI_Datatype datatype,int source,int tag, MPI_Comm comm, MPI_Status *status); |
MPI_RECV | MPI_RECV(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER SOURCE, INTEGER TAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE),,INTEGER IERROR) |
MPI_Get_count | int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count); |
MPI_GET_COUNT | MPI_GET_COUNT(INTEGER STATUS(MPI_STATUS_SIZE),,INTEGER DATATYPE,INTEGER COUNT, INTEGER IERROR) |
MPI_Bsend | int MPI_Bsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm); |
MPI_BSEND | MPI_BSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST, INTEGER TAG,INTEGER COMM,INTEGER IERROR) |
MPI_Ssend | int MPI_Ssend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm); |
MPI_SSEND | MPI_SSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER IERROR) |
MPI_Rsend | int MPI_Rsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm); |
MPI_RSEND | MPI_RSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER IERROR) |
MPI_Buffer_attach | int MPI_Buffer_attach(void* buffer,int size); |
MPI_BUFFER_ATTACH | MPI_BUFFER_ATTACH(CHOICE BUFFER,INTEGER SIZE,INTEGER IERROR) |
MPI_Buffer_detach | int MPI_Buffer_detach(void* buffer,int* size); |
MPI_BUFFER_DETACH | MPI_BUFFER_DETACH(CHOICE BUFFER,INTEGER SIZE,INTEGER IERROR) |
MPI_Isend | int MPI_Isend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_ISEND | MPI_ISEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Ibsend | int MPI_Ibsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_IBSEND | MPI_IBSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Issend | int MPI_Issend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_ISSEND | MPI_ISSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Irsend | int MPI_Irsend(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_IRSEND | MPI_IRSEND(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Irecv | int MPI_Irecv(void* buf,int count,MPI_Datatype datatype,int source,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_IRECV | MPI_IRECV(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Wait | int MPI_Wait(MPI_Request *request,MPI_Status *status); |
MPI_WAIT | MPI_WAIT(INTEGER REQUEST,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
MPI_Test | int MPI_Test(MPI_Request *request,int *flag,MPI_Status *status); |
MPI_TEST | MPI_TEST(INTEGER REQUEST,INTEGER FLAG,INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR) |
MPI_Request_free | int MPI_Request_free(MPI_Request *request); |
MPI_REQUEST_FREE | MPI_REQUEST_FREE(INTEGER REQUEST,INTEGER IERROR) |
MPI_Waitany | int MPI_Waitany(int count,MPI_Request *array_of_requests,int *index,MPI_Status *status); |
MPI_WAITANY | MPI_WAITANY(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER INDEX, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
MPI_Testany | int MPI_Testany(int count, MPI_Request *array_of_requests, int *index, int *flag,MPI_Status *status); |
MPI_TESTANY | MPI_TESTANY(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER INDEX,INTEGER FLAG,INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR) |
MPI_Waitall | int MPI_Waitall(int count,MPI_Request *array_of_requests,MPI_Status *array_of_statuses); |
MPI_WAITALL | MPI_WAITALL(INTEGER COUNT,INTEGER ARRAY_OF_ REQUESTS(*),INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), INTEGER IERROR) |
MPI_Testall | int MPI_Testall(int count,MPI_Request *array_of_requests,int *flag,MPI_Status *array_of_statuses); |
MPI_TESTALL | MPI_TESTALL(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER FLAG, INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*),INTEGER IERROR) |
MPI_Waitsome | int MPI_Waitsome(int incount,MPI_Request *array_of_requests,int *outcount,int *array_of_indices,MPI_Status *array_of_statuses); |
MPI_WAITSOME | MPI_WAITSOME(INTEGER INCOUNT,INTEGER ARRAY_OF_REQUESTS,INTEGER OUTCOUNT,INTEGER ARRAY_OF_INDICES(*),INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE),*),INTEGER IERROR) |
MPI_Testsome | int MPI_Testsome(int incount,MPI_Request *array_of_requests,int *outcount,int *array_of_indices,MPI_Status *array_of_statuses); |
MPI_TESTSOME | MPI_TESTSOME(INTEGER INCOUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER OUTCOUNT,INTEGER ARRAY_OF_INDICES(*),INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE),*),INTEGER IERROR) |
MPI_Iprobe | int MPI_Iprobe(int source,int tag,MPI_Comm comm,int *flag,MPI_Status *status); |
MPI_IPROBE | MPI_IPROBE(INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER FLAG,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
MPI_Probe | int MPI_Probe(int source,int tag,MPI_Comm comm,MPI_Status *status); |
MPI_PROBE | MPI_PROBE(INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR) |
MPI_Cancel | int MPI_Cancel(MPI_Request *request); |
MPI_CANCEL | MPI_CANCEL(INTEGER REQUEST,INTEGER IERROR) |
MPI_Test_cancelled | int MPI_Test_cancelled(MPI_Status *status,int *flag); |
MPI_TEST_CANCELLED | MPI_TEST_CANCELLED(INTEGER STATUS(MPI_STATUS_SIZE),INTEGER FLAG,INTEGER IERROR) |
MPI_Send_init | int MPI_Send_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_SEND_INIT | MPI_SEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Bsend_init | int MPI_Bsend_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_BSEND_INIT | MPI_SEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Ssend_init | int MPI_Ssend_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_SSEND_INIT | MPI_SSEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,IERROR) |
MPI_Rsend_init | int MPI_Rsend_init(void* buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_RSEND_INIT | MPI_RSEND_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Recv_init | int MPI_Recv_init(void* buf,int count,MPI_Datatype datatype,int source,int tag,MPI_Comm comm,MPI_Request *request); |
MPI_RECV_INIT | MPI_RECV_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) |
MPI_Start | int MPI_Start(MPI_Request *request); |
MPI_START | MPI_START(INTEGER REQUEST,INTEGER IERROR) |
MPI_Startall | int MPI_Startall(int count,MPI_Request *array_of_requests); |
MPI_STARTALL | MPI_STARTALL(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER IERROR) |
MPI_Sendrecv | int MPI_Sendrecv(void *sendbuf,int sendcount,MPI_Datatype sendtype,int dest,int sendtag,void *recvbuf,int recvcount, MPI_Datatype recvtype,int source,int recvtag,MPI_Comm comm,MPI_Status *status); |
MPI_SENDRECV | MPI_SENDRECV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,INTEGER DEST,INTEGER SENDTAG,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER SOURCE,INTEGER RECVTAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
MPI_Sendrecv_replace | int MPI_Sendrecv_replace(void* buf,int count,MPI_Datatype datatype,int dest,int sendtag,int source,int recvtag,MPI_Comm comm,MPI_Status *status); |
MPI_SENDRECV_REPLACE | MPI_SENDRECV_REPLACE(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER DEST,INTEGER SENDTAG,INTEGER SOURCE,INTEGER RECVTAG,INTEGER COMM,INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
MPI_Type_contiguous | int MPI_Type_contiguous(int count,MPI_Datatype oldtype,MPI_Datatype *newtype); |
MPI_TYPE_CONTIGUOUS | MPI_TYPE_CONTIGUOUS(INTEGER COUNT,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Type_create_darray | int MPI_Type_create_darray (int size,int rank,int ndims, int array_of_gsizes[],int array_of_distribs[], int array_of_dargs[],int array_of_psizes[], int order,MPI_Datatype oldtype,MPI_Datatype *newtype); |
MPI_TYPE_CREATE_DARRAY | MPI_TYPE_CREATE_DARRAY (INTEGER SIZE,INTEGER RANK,INTEGER NDIMS, INTEGER ARRAY_OF_GSIZES(*),INTEGER ARRAY_OF_DISTRIBS(*), INTEGER ARRAY_OF_DARGS(*),INTEGER ARRAY_OF_PSIZES(*), INTEGER ORDER,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Type_create_subarray | int MPI_Type_create_subarray (int ndims,int array_of_sizes[], int array_of_subsizes[],int array_of_starts[] , int order,MPI_Datatype oldtype,MPI_Datatype *newtype); |
MPI_TYPE_CREATE_SUBARRAY | MPI_TYPE_CREATE_SUBARRAY (INTEGER NDIMS,INTEGER ARRAY_OF_SUBSIZES(*), INTEGER ARRAY_OF_SIZES(*),INTEGER ARRAY_OF_STARTS(*), INTEGER ORDER,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Type_get_contents | int MPI_Type_get_contents(MPI_Datatype datatype, int *max_integers, int *max_addresses, int *max_datatypes, int array_of_integers[], int array_of_addresses[], int array_of_datatypes[]); |
MPI_TYPE_GET_CONTENTS | MPI_TYPE_GET_CONTENTS(INTEGER DATATYPE, INTEGER MAX_INTEGERS, INTEGER MAX_ADDRESSES, INTEGER MAX_DATATYPES, INTEGER ARRAY_of_INTEGERS, INTEGER ARRAY_OF_ADDRESSES, INTEGER ARRAY_of_DATATYPES, INTEGER IERROR) |
MPI_Type_get_envelope | int MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers, int *num_addresses, int *num_datatypes, int *combiner); |
MPI_TYPE_GET_ENVELOPE | MPI_TYPE_GET_ENVELOPE(INTEGER DATATYPE, INTEGER NUM_INTEGERS, INTEGER NUM_ADDRESSES, INTEGER NUM_DATATYPES, INTEGER COMBINER, INTEGER IERROR) |
MPI_Type_vector | int MPI_Type_vector(int count,int blocklength,int stride,MPI_Datatype oldtype,MPI_Datatype *newtype); |
MPI_TYPE_VECTOR | MPI_TYPE_VECTOR(INTEGER COUNT,INTEGER BLOCKLENGTH,INTEGER STRIDE,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Type_hvector | int MPI_Type_hvector(int count,int blocklength,MPI_Aint stride,MPI_Datatype oldtype,MPI_Datatype *newtype); |
MPI_TYPE_HVECTOR | MPI_TYPE_HVECTOR(INTEGER COUNT,INTEGER BLOCKLENGTH,INTEGER STRIDE,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Type_indexed | int MPI_Type_indexed(int count,int *array_of_blocklengths,int *array_of_displacements,MPI_Datatype oldtype, MPI_Datatype *newtype); |
MPI_TYPE_INDEXED | MPI_TYPE_INDEXED(INTEGER COUNT, INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER ARRAY_OF DISPLACEMENTS(*),INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Type_hindexed | int MPI_Type_hindexed(int count,int *array_of_blocklengths,MPI_Aint *array_of_displacements,MPI_Datatype oldtype, MPI_Datatype *newtype); |
MPI_TYPE_HINDEXED | MPI_TYPE_HINDEXED(INTEGER COUNT,INTEGER ARRAY_OF_BLOCKLENGTHS(*),INTEGER ARRAY_OF DISPLACEMENTS(*),INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Type_struct | int MPI_Type_struct(int count,int *array_of_blocklengths, MPI_Aint *array_of_displacements,MPI_Datatype *array_of_types, MPI_Datatype *newtype); |
MPI_TYPE_STRUCT | MPI_TYPE_STRUCT(INTEGER COUNT,INTEGER ARRAY_OF_BLOCKLENGTHS(*),INTEGER ARRAY_OF DISPLACEMENTS(*),INTEGER ARRAY_OF_TYPES(*),INTEGER NEWTYPE,INTEGER IERROR) |
MPI_Address | int MPI_Address(void* location,MPI_Aint *address); |
MPI_ADDRESS | MPI_ADDRESS(CHOICE LOCATION,INTEGER ADDRESS,INTEGER IERROR) |
MPI_Type_extent | int MPI_Type_extent(MPI_Datatype datatype,int *extent); |
MPI_TYPE_EXTENT | MPI_TYPE_EXTENT(INTEGER DATATYPE,INTEGER EXTENT,INTEGER IERROR) |
MPI_Type_size | int MPI_Type_size(MPI_Datatype datatype,int *size); |
MPI_TYPE_SIZE | MPI_TYPE_SIZE(INTEGER DATATYPE,INTEGER SIZE,INTEGER IERROR) |
MPI_Type_lb | int MPI_Type_lb(MPI_Datatype datatype,int* displacement); |
MPI_TYPE_LB | MPI_TYPE_LB(INTEGER DATATYPE,INTEGER DISPLACEMENT,INTEGER IERROR) |
MPI_Type_ub | int MPI_Type_ub(MPI_Datatype datatype,int* displacement); |
MPI_TYPE_UB | MPI_TYPE_UB(INTEGER DATATYPE,INTEGER DISPLACEMENT,INTEGER IERROR) |
MPI_Type_commit | int MPI_Type_commit(MPI_Datatype *datatype); |
MPI_TYPE_COMMIT | MPI_TYPE_COMMIT(INTEGER DATATYPE,INTEGER IERROR) |
MPI_Type_free | int MPI_Type_free(MPI_Datatype *datatype); |
MPI_TYPE_FREE | MPI_TYPE_FREE(INTEGER DATATYPE,INTEGER IERROR) |
MPI_Get_elements | int MPI_Get_elements(MPI_Status *status,MPI_Datatype datatype,int *count); |
MPI_GET_ELEMENTS | MPI_GET_ELEMENTS(INTEGER STATUS(MPI_STATUS_SIZE),INTEGER DATATYPE,INTEGER COUNT,INTEGER IERROR) |
MPI_Pack | int MPI_Pack(void* inbuf,int incount,MPI_Datatype datatype,void *outbuf,int outsize,int *position,MPI_Comm comm); |
MPI_PACK | MPI_PACK(CHOICE INBUF,INTEGER INCOUNT,INTEGER DATATYPE,CHOICE OUTBUF,INTEGER OUTSIZE,INTEGER POSITION,INTEGER COMM,INTEGER IERROR) |
MPI_Unpack | int MPI_Unpack(void* inbuf,int insize,int *position,void *outbuf,int outcount,MPI_Datatype datatype,MPI_Comm comm); |
MPI_UNPACK | MPI_UNPACK(CHOICE INBUF,INTEGER INSIZE,INTEGER POSITION,CHOICE OUTBUF,INTEGER OUTCOUNT,INTEGER DATATYPE,INTEGER COMM, INTEGER IERRROR) |
MPI_Pack_size | int MPI_Pack_size(int incount,MPI_Datatype datatype,MPI_Comm comm,int *size); |
MPI_PACK_SIZE | MPI_PACK_SIZE(INTEGER INCOUNT,INTEGER DATATYPE,INTEGER COMM,INTEGER SIZE,INTEGER IERROR) |
Table 8 lists the C and FORTRAN
bindings for collective communication routines.
Table 8. Bindings for Collective Communication
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_Barrier | int MPI_Barrier(MPI_Comm comm); |
MPI_BARRIER | MPI_BARRIER(INTEGER COMM,INTEGER IERROR) |
MPI_Bcast | int MPI_Bcast(void* buffer,int count,MPI_Datatype datatype,int root,MPI_Comm comm); |
MPI_BCAST | MPI_BCAST(CHOICE BUFFER,INTEGER COUNT,INTEGER DATATYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR) |
MPI_Gather | int MPI_Gather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm); |
MPI_GATHER | MPI_GATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR) |
MPI_Gatherv | int MPI_Gatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs,MPI_Datatype recvtype,int root,MPI_Comm comm); |
MPI_GATHERV | MPI_GATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR) |
MPI_Scatter | int MPI_Scatter(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root MPI_Comm comm); |
MPI_SCATTER | MPI_SCATTER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR) |
MPI_Scatterv | int MPI_Scatterv(void* sendbuf,int *sendcounts,int *displs,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype,int root,MPI_Comm comm); |
MPI_SCATTERV | MPI_SCATTERV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER DISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER ROOT,INTEGER COMM,INTEGER IERROR) |
MPI_Allgather | int MPI_Allgather(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype, MPI_Comm comm); |
MPI_ALLGATHER | MPI_ALLGATHER(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR) |
MPI_Allgatherv | int MPI_Allgatherv(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *displs, MPI_Datatype recvtype,MPI_Comm comm); |
MPI_ALLGATHERV | MPI_ALLGATHERV(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR) |
MPI_Alltoall | int MPI_Alltoall(void* sendbuf,int sendcount,MPI_Datatype sendtype,void* recvbuf,int recvcount,MPI_Datatype recvtype, MPI_Comm comm); |
MPI_ALLTOALL | MPI_ALLTOALL(CHOICE SENDBUF,INTEGER SENDCOUNT,INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNT,INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR) |
MPI_Alltoallv | int MPI_Alltoallv(void* sendbuf,int *sendcounts,int *sdispls,MPI_Datatype sendtype,void* recvbuf,int *recvcounts,int *rdispls,MPI_Datatype recvtype,MPI_Comm comm); |
MPI_ALLTOALLV | MPI_ALLTOALLV(CHOICE SENDBUF,INTEGER SENDCOUNTS(*),INTEGER SDISPLS(*),INTEGER SENDTYPE,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER RDISPLS(*),INTEGER RECVTYPE,INTEGER COMM,INTEGER IERROR) |
MPI_Reduce | int MPI_Reduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,int root,MPI_Comm comm); |
MPI_REDUCE | MPI_REDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER ROOT,INTEGER COMM,INTEGER IERROR) |
MPI_Op_create | int MPI_Op_create(MPI_User_function *function, int commute, MPI_Op *op); |
MPI_OP_CREATE | MPI_OP_CREATE(EXTERNAL FUNCTION,INTEGER COMMUTE,INTEGER OP,INTEGER IERROR) |
MPI_Op_free | int MPI_Op_free(MPI_Op *op); |
MPI_OP_FREE | MPI_OP_FREE(INTEGER OP,INTEGER IERROR) |
MPI_Allreduce | int MPI_Allreduce(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm); |
MPI_ALLREDUCE | MPI_ALLREDUCE(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER IERROR) |
MPI_Reduce_scatter | int MPI_Reduce_scatter(void* sendbuf,void* recvbuf,int *recvcounts,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm); |
MPI_REDUCE_SCATTER | MPI_REDUCE_SCATTER(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER RECVCOUNTS(*),INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER IERROR) |
MPI_Scan | int MPI_Scan(void* sendbuf,void* recvbuf,int count,MPI_Datatype datatype,MPI_Op op,MPI_Comm comm); |
MPI_SCAN | MPI_SCAN(CHOICE SENDBUF,CHOICE RECVBUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER OP,INTEGER COMM,INTEGER IERROR) |
Table 9 lists the C and FORTRAN bindings for group and communicator routines.
Table 9. Bindings for Groups and Communicators
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_Group_size | int MPI_Group_size(MPI_Group group,int *size); |
MPI_GROUP_SIZE | MPI_GROUP_SIZE(INTEGER GROUP,INTEGER SIZE,INTEGER IERROR) |
MPI_Group_rank | int MPI_Group_rank(MPI_Group group,int *rank); |
MPI_GROUP_RANK | MPI_GROUP_RANK(INTEGER GROUP,INTEGER RANK,INTEGER IERROR) |
MPI_Group_translate_ranks | int MPI_Group_translate_ranks (MPI_Group group1,int n,int *ranks1,MPI_Group group2,int *ranks2); |
MPI_GROUP_TRANSLATE_RANKS | MPI_GROUP_TRANSLATE_RANKS(INTEGER GROUP1, INTEGER N,INTEGER RANKS1(*),INTEGER GROUP2,INTEGER RANKS2(*),INTEGER IERROR) |
MPI_Group_compare | int MPI_Group_compare(MPI_Group group1,MPI_Group group2,int *result); |
MPI_GROUP_COMPARE | MPI_GROUP_COMPARE(INTEGER GROUP1,INTEGER GROUP2,INTEGER RESULT,INTEGER IERROR) |
MPI_Comm_group | int MPI_Comm_group(MPI_Comm comm,MPI_Group *group); |
MPI_COMM_GROUP | MPI_COMM_GROUP(INTEGER COMM,INTEGER GROUP,INTEGER IERROR) |
MPI_Group_union | int MPI_Group_union(MPI_Group group1,MPI_Group group2,MPI_Group *newgroup); |
MPI_GROUP_UNION | MPI_GROUP_UNION(INTEGER GROUP1,INTEGER GROUP2,INTEGER NEWGROUP,INTEGER IERROR) |
MPI_Group_intersection | int MPI_Group_intersection(MPI_Group group1,MPI_Group group2,MPI_Group *newgroup); |
MPI_GROUP_INTERSECTION | MPI_GROUP_INTERSECTION(INTEGER GROUP1,INTEGER GROUP2,INTEGER NEWGROUP,INTEGER IERROR) |
MPI_Group_difference | int MPI_Group_difference(MPI_Group group1,MPI_Group group2,MPI_Group *newgroup); |
MPI_GROUP_DIFFERENCE | MPI_GROUP_DIFFERENCE(INTEGER GROUP1,INTEGER GROUP2,INTEGER NEWGROUP,INTEGER IERROR) |
MPI_Group_incl | int MPI_Group_incl(MPI_Group group,int n,int *ranks,MPI_Group *newgroup); |
MPI_GROUP_INCL | MPI_GROUP_INCL(INTEGER GROUP,INTEGER N,INTEGER RANKS(*),INTEGER NEWGROUP,INTEGER IERROR) |
MPI_Group_excl | int MPI_Group_excl(MPI_Group group,int n,int *ranks,MPI_Group *newgroup); |
MPI_GROUP_EXCL | MPI_GROUP_EXCL(INTEGER GROUP,INTEGER N,INTEGER RANKS(*),INTEGER NEWGROUP,INTEGER IERROR) |
MPI_Group_range_incl | int MPI_Group_range_incl(MPI_Group group,int n,int ranges[][3],MPI_Group *newgroup); |
MPI_GROUP_RANGE_INCL | MPI_GROUP_RANGE_INCL(INTEGER GROUP,INTEGER N,INTEGER RANGES(3,*),INTEGER NEWGROUP,INTEGER IERROR) |
MPI_Group_range_excl | int MPI_Group_range_excl(MPI_Group group,int n,int ranges [][3],MPI_Group *newgroup); |
MPI_GROUP_RANGE_EXCL | MPI_GROUP_RANGE_EXCL(INTEGER GROUP,INTEGER N,INTEGER RANGES(3,*),INTEGER NEWGROUP,INTEGER IERROR) |
MPI_Group_free | int MPI_Group_free(MPI_Group *group); |
MPI_GROUP_FREE | MPI_GROUP_FREE(INTEGER GROUP,INTEGER IERROR) |
MPI_Comm_size | int MPI_Comm_size(MPI_Comm comm,int *size); |
MPI_COMM_SIZE | MPI_COMM_SIZE(INTEGER COMM,INTEGER SIZE,INTEGER IERROR) |
MPI_Comm_rank | int MPI_Comm_rank(MPI_Comm comm,int *rank); |
MPI_COMM_RANK | MPI_COMM_RANK(INTEGER COMM,INTEGER RANK,INTEGER IERROR) |
MPI_Comm_compare | int MPI_Comm_compare(MPI_Comm comm1,MPI_Comm comm2,int *result); |
MPI_COMM_COMPARE | MPI_COMM_COMPARE(INTEGER COMM1,INTEGER COMM2,INTEGER RESULT,INTEGER IERROR) |
MPI_Comm_dup | int MPI_Comm_dup(MPI_Comm comm,MPI_Comm *newcomm); |
MPI_COMM_DUP | MPI_COMM_DUP(INTEGER COMM,INTEGER NEWCOMM,INTEGER IERROR) |
MPI_Comm_create | int MPI_Comm_create(MPI_Comm comm,MPI_Group group,MPI_Comm *newcomm); |
MPI_COMM_CREATE | MPI_COMM_CREATE(INTEGER COMM,INTEGER GROUP,INTEGER NEWCOMM,INTEGER IERROR) |
MPI_Comm_split | int MPI_Comm_split(MPI_Comm comm,int color,int key,MPI_Comm *newcomm); |
MPI_COMM_SPLIT | MPI_COMM_SPLIT(INTEGER COMM,INTEGER COLOR,INTEGER KEY,INTEGER NEWCOMM,INTEGER IERROR) |
MPI_Comm_free | int MPI_Comm_free(MPI_Comm *comm); |
MPI_COMM_FREE | MPI_COMM_FREE(INTEGER COMM,INTEGER IERROR) |
MPI_Comm_test_inter | int MPI_Comm_test_inter(MPI_Comm comm,int *flag); |
MPI_COMM_TEST_INTER | MPI_COMM_TEST_INTER(INTEGER COMM,LOGICAL FLAG,INTEGER IERROR) |
MPI_Comm_remote_size | int MPI_Comm_remote_size(MPI_Comm comm,int *size); |
MPI_COMM_REMOTE_SIZE | MPI_COMM_REMOTE_SIZE(INTEGER COMM,INTEGER SIZE,INTEGER IERROR) |
MPI_Comm_remote_group | int MPI_Comm_remote_group(MPI_Comm comm,MPI_Group *group); |
MPI_COMM_REMOTE_GROUP | MPI_COMM_REMOTE_GROUP(INTEGER COMM,INTEGER GROUP,INTEGER IERROR) |
MPI_Intercomm_create | int MPI_Intercomm_create(MPI_Comm local_comm,int local_leader,MPI_Comm peer_comm,int remote_leader,int tag, MPI_Comm *newintercomm); |
MPI_INTERCOMM_CREATE | MPI_INTERCOMM_CREATE(INTEGER LOCAL_COMM,INTEGER LOCAL_LEADER,INTEGER PEER_COMM,INTEGER REMOTE_LEADER,INTEGER TAG,INTEGER NEWINTERCOM,INTEGER IERROR) |
MPI_Intercomm_merge | int MPI_Intercomm_merge(MPI_Comm intercomm,int high,MPI_Comm *newintracomm); |
MPI_INTERCOMM_MERGE | MPI_INTERCOMM_MERGE(INTEGER INTERCOMM,INTEGER HIGH,INTEGER NEWINTRACOMM,INTEGER IERROR) |
MPI_Keyval_create | int MPI_Keyval_create(MPI_Copy_function *copy_fn,MPI_Delete_function *delete_fn,int *keyval, void* extra_state); |
MPI_KEYVAL_CREATE | MPI_KEYVAL_CREATE(EXTERNAL COPY_FN,EXTERNAL DELETE_FN,INTEGER KEYVAL,INTEGER EXTRA_STATE,INTEGER IERROR) |
MPI_Keyval_free | int MPI_Keyval_free(int *keyval); |
MPI_KEYVAL_FREE | MPI_KEYVAL_FREE(INTEGER KEYVAL,INTEGER IERROR) |
MPI_Attr_put | int MPI_Attr_put(MPI_Comm comm,int keyval,void* attribute_val); |
MPI_ATTR_PUT | MPI_ATTR_PUT(INTEGER COMM,INTEGER KEYVAL,INTEGER ATTRIBUTE_VAL,INTEGER IERROR) |
MPI_Attr_get | int MPI_Attr_get(MPI_Comm comm,int keyval,void *attribute_val,int *flag); |
MPI_ATTR_GET | MPI_ATTR_GET(INTEGER COMM,INTEGER KEYVAL,INTEGER ATTRIBUTE_VAL, LOGICAL FLAG,INTEGER IERROR) |
MPI_Attr_delete | int MPI_Attr_delete(MPI_Comm comm,int keyval); |
MPI_ATTR_DELETE | MPI_ATTR_DELETE(INTEGER COMM,INTEGER KEYVAL,INTEGER IERROR) |
Table 10 lists the C and FORTRAN bindings for topology routines.
Table 10. Bindings for Topologies
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_Cart_create | int MPI_Cart_create(MPI_Comm comm_old,int ndims,int *dims,int *periods,int reorder,MPI_Comm *comm_cart); |
MPI_CART_CREATE | MPI_CART_CREATE(INTEGER COMM_OLD,INTEGER NDIMS,INTEGER DIMS(*), INTEGER PERIODS(*),INTEGER REORDER,INTEGER COMM_CART,INTEGER IERROR) |
MPI_Dims_create | int MPI_Dims_create(int nnodes,int ndims,int *dims); |
MPI_DIMS_CREATE | MPI_DIMS_CREATE(INTEGER NNODES,INTEGER NDIMS,INTEGER DIMS(*), INTEGER IERROR) |
MPI_Graph_create | int MPI_Graph_create(MPI_Comm comm_old,int nnodes,int *index,int *edges,int reorder,MPI_Comm *comm_graph); |
MPI_GRAPH_CREATE | MPI_GRAPH_CREATE(INTEGER COMM_OLD,INTEGER NNODES,INTEGER INDEX(*), INTEGER EDGES(*),INTEGER REORDER,INTEGER COMM_GRAPH,INTEGER IERROR) |
MPI_Topo_test | int MPI_Topo_test(MPI_Comm comm,int *status); |
MPI_TOPO_TEST | MPI_TOPO_TEST(INTEGER COMM,INTEGER STATUS,INTEGER IERROR) |
MPI_Graphdims_get | int MPI_Graphdims_get(MPI_Comm comm,int *nnodes,int *nedges); |
MPI_GRAPHDIMS_GET | MPI_GRAPHDIMS_GET(INTEGER COMM,INTEGER NNDODES,INTEGER NEDGES, INTEGER IERROR) |
MPI_Graph_get | int MPI_Graph_get(MPI_Comm comm,int maxindex,int maxedges,int *index, int *edges); |
MPI_GRAPH_GET | MPI_GRAPH_GET(INTEGER COMM,INTEGER MAXINDEX,INTEGER MAXEDGES,INTEGER INDEX(*),INTEGER EDGES(*),INTEGER IERROR) |
MPI_Cartdim_get | int MPI_Cartdim_get(MPI_Comm comm, int *ndims); |
MPI_CARTDIM_GET | MPI_CARTDIM_GET(INTEGER COMM,INTEGER NDIMS,INTEGER IERROR) |
MPI_Cart_get | int MPI_Cart_get(MPI_Comm comm,int maxdims,int *dims,int *periods,int *coords); |
MPI_CART_GET | MPI_CART_GET(INTEGER COMM,INTEGER MAXDIMS,INTEGER DIMS(*),INTEGER PERIODS(*),INTEGER COORDS(*),INTEGER IERROR) |
MPI_Cart_rank | int MPI_Cart_rank(MPI_Comm comm,int *coords,int *rank); |
MPI_CART_RANK | MPI_CART_RANK(INTEGER COMM,INTEGER COORDS(*),INTEGER RANK,INTEGER IERROR) |
MPI_Cart_coords | int MPI_Cart_coords(MPI_Comm comm,int rank,int maxdims,int *coords); |
MPI_CART_COORDS | MPI_CART_COORDS(INTEGER COMM,INTEGER RANK,INTEGER MAXDIMS,INTEGER COORDS(*),INTEGER IERROR) |
MPI_Graph_neighbors_count | int MPI_Graph_neighbors_count(MPI_Comm comm,int rank,int *nneighbors); |
MPI_GRAPH_NEIGHBORS_COUNT | MPI_GRAPH_NEIGHBORS_COUNT(INTEGER COMM,INTEGER RANK,INTEGER NEIGHBORS, INTEGER IERROR) |
MPI_Graph_neighbors | int MPI_Graph_neighbors(MPI_Comm comm,int rank,int maxneighbors,int *neighbors); |
MPI_GRAPH_NEIGHBORS | MPI_GRAPH_NEIGHBORS(MPI_COMM COMM,INTEGER RANK,INTEGER MAXNEIGHBORS,INTEGER NNEIGHBORS(*),INTEGER IERROR) |
MPI_Cart_shift | int MPI_Cart_shift(MPI_Comm comm,int direction,int disp,int *rank_source,int *rank_dest); |
MPI_CART_SHIFT | MPI_CART_SHIFT(INTEGER COMM,INTEGER DIRECTION,INTEGER DISP, INTEGER RANK_SOURCE,INTEGER RANK_DEST,INTEGER IERROR) |
MPI_Cart_sub | int MPI_Cart_sub(MPI_Comm comm,int *remain_dims,MPI_Comm *newcomm); |
MPI_CART_SUB | MPI_CART_SUB(INTEGER COMM,INTEGER REMAIN_DIMS,INTEGER NEWCOMM, INTEGER IERROR) |
MPI_Cart_map | int MPI_Cart_map(MPI_Comm comm,int ndims,int *dims,int *periods,int *newrank); |
MPI_CART_MAP | MPI_CART_MAP(INTEGER COMM,INTEGER NDIMS,INTEGER DIMS(*),INTEGER PERIODS(*),INTEGER NEWRANK,INTEGER IERROR) |
MPI_Graph_map | int MPI_Graph_map(MPI_Comm comm,int nnodes,int *index,int *edges,int *newrank); |
MPI_GRAPH_MAP | MPI_GRAPH_MAP(INTEGER COMM,INTEGER NNODES,INTEGER INDEX(*),INTEGER EDGES(*),INTEGER NEWRANK,INTEGER IERROR) |
Table 11 lists the C and FORTRAN bindings for environment management routines.
Table 11. Bindings for Environment Management
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_File_create_errhandler | int MPI_File_create_errhandler (MPI_File_errhandler_fn *function, MPI_Errhandler *errhandler); |
MPI_FILE_CREATE_ERRHANDLER | MPI_FILE_CREATE_ERRHANDLER(EXTERNAL FUNCTION,INTEGER ERRHANDLER, INTEGER IERROR) |
MPI_File_get_errhandler | int MPI_File_get_errhandler (MPI_File file,MPI_Errhandler *errhandler); |
MPI_FILE_GET_ERRHANDLER | MPI_FILE_GET_ERRHANDLER (INTEGER FILE,INTEGER ERRHANDLER, INTEGER IERROR) |
MPI_File_set_errhandler | int MPI_File_set_errhandler (MPI_File fh, MPI_Errhandler errhandler); |
MPI_FILE_SET_ERRHANDLER | MPI_FILE_SET_ERRHANDLER(INTEGER FH,INTEGER ERRHANLDER, INTEGER IERROR) |
MPI_Get_version | int MPI_Get_version(int *version,int *subversion); |
MPI_GET_VERSION | MPI_GET_VERSION(INTEGER VERSION,INTEGER SUBVERSION,INTEGER IERROR) |
MPI_Get_processor_name | int MPI_Get_processor_name(char *name,int *resultlen); |
MPI_GET_PROCESSOR_NAME | MPI_GET_PROCESSOR_NAME(CHARACTER NAME(*),INTEGER RESULTLEN,INTEGER IERROR) |
MPI_Errhandler_create | int MPI_Errhandler_create(MPI_Handler_function *function, MPI_Errhandler *errhandler); |
MPI_ERRHANDLER_CREATE | MPI_ERRHANDLER_CREATE(EXTERNAL FUNCTION,INTEGER ERRHANDLER, INTEGER IERROR) |
MPI_Errhandler_set | int MPI_Errhandler_set(MPI_Comm comm,MPI_Errhandler errhandler); |
MPI_ERRHANDLER_SET | MPI_ERRHANDLER_SET(INTEGER COMM,INTEGER ERRHANDLER,INTEGER IERROR) |
MPI_Errhandler_get | int MPI_Errhandler_get(MPI_Comm comm,MPI_Errhandler *errhandler); |
MPI_ERRHANDLER_GET | MPI_ERRHANDLER_GET(INTEGER COMM,INTEGER ERRHANDLER,INTEGER IERROR) |
MPI_Errhandler_free | int MPI_Errhandler_free(MPI_Errhandler *errhandler); |
MPI_ERRHANDLER_FREE | MPI_ERRHANDLER_FREE(INTEGER ERRHANDLER,INTEGER IERROR) |
MPI_Error_string | int MPI_Error_string(int errorcode, char *string, int *resultlen); |
MPI_ERROR_STRING | MPI_ERROR_STRING(INTEGER ERRORCODE,CHARACTER STRING(*),INTEGER RESULTLEN,INTEGER IERROR) |
MPI_Error_class | int MPI_Error_class(int errorcode, int *errorclass); |
MPI_ERROR_CLASS | MPI_ERROR_CLASS(INTEGER ERRORCODE,INTEGER ERRORCLASS,INTEGER IERROR) |
MPI_Wtime | double MPI_Wtime(void); |
MPI_WTIME | DOUBLE PRECISION MPI_WTIME() |
MPI_Wtick | double MPI_Wtick(void); |
MPI_WTICK | DOUBLE PRECISION MPI_WTICK() |
MPI_Init | int MPI_Init(int *argc, char ***argv); |
MPI_INIT | MPI_INIT(INTEGER IERROR) |
MPI_Finalize | int MPI_Finalize(void); |
MPI_FINALIZE | MPI_FINALIZE(INTEGER IERROR) |
MPI_Initialized | int MPI_Initialized(int *flag); |
MPI_INITIALIZED | MPI_INITIALIZED(INTEGER FLAG,INTEGER IERROR) |
MPI_Abort | int MPI_Abort(MPI_Comm comm, int errorcode); |
MPI_ABORT | MPI_ABORT(INTEGER COMM,INTEGER ERRORCODE,INTEGER IERROR) |
Table 12 lists the C and FORTRAN bindings for profiling.
Table 12. Bindings for Profiling
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_Pcontrol | int MPI_Pcontrol(const int level,...); |
MPI_PCONTROL | MPI_PCONTROL(INTEGER LEVEL,...) |
Table 13 lists the C and FORTRAN bindings for files.
Table 13. Bindings for MPI I/O
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_File_close | int MPI_File_close (MPI_File *fh); |
MPI_FILE_CLOSE | MPI_FILE_CLOSE(INTEGER FH,INTEGER IERROR) |
MPI_File_delete | int MPI_File_delete (char *filename,MPI_Info info); |
MPI_FILE_DELETE | MPI_FILE_DELETE(CHARACTER*(*) FILENAME,INTEGER INFO, INTEGER IERROR) |
MPI_File_get_amode | int MPI_File_get_amode (MPI_File fh,int *amode); |
MPI_FILE_GET_AMODE | MPI_FILE_GET_AMODE(INTEGER FH,INTEGER AMODE,INTEGER IERROR) |
MPI_File_get_atomicity | int MPI_File_get_atomicity (MPI_File fh,int *flag); |
MPI_FILE_GET_ATOMICITY | MPI_FILE_GET_ATOMICITY (INTEGER FH,LOGICAL FLAG,INTEGER IERROR) |
MPI_File_get_group | int MPI_File_get_group (MPI_File fh,MPI_Group *group); |
MPI_FILE GET_GROUP | MPI_FILE GET_GROUP (INTEGER FH,INTEGER GROUP,INTEGER IERROR) |
MPI_File_get_info | int MPI_File_get_info (MPI_File fh,MPI_Info *info_used); |
MPI_FILE_GET_INFO | MPI_FILE_GET_INFO (INTEGER FH,INTEGER INFO_USED, INTEGER IERROR) |
MPI_File_get_size | int MPI_File_get_size (MPI_File fh,MPI_Offset size); |
MPI_FILE_GET_SIZE | MPI_FILE_GET_SIZE (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) SIZE, INTEGER IERROR) |
MPI_File_get_view | int MPI_File_get_view (MPI_File fh,MPI_Offset *disp, MPI_Datatype *etype,MPI_Datatype *filetype,char *datarep); |
MPI_FILE_GET_VIEW | MPI_FILE_GET_VIEW (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) DISP, INTEGER ETYPE,INTEGER FILETYPE,INTEGER DATAREP,INTEGER IERROR) |
MPI_File_iread_at | int MPI_File_iread_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Request *request); |
MPI_FILE_IREAD_AT | MPI_FILE_IREAD_AT (INTEGER FH,INTEGER (KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER REQUEST, INTEGER IERROR) |
MPI_File_iwrite_at | int MPI_File_iwrite_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Request *request); |
MPI_FILE_IWRITE_AT | MPI_FILE_IWRITE_AT(INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER REQUEST, INTEGER IERROR) |
MPI_File_open | int MPI_File_open (MPI_Comm comm,char *filename,int amode,MPI_info, MPI_File *fh); |
MPI_FILE_OPEN | MPI_FILE_OPEN(INTEGER COMM,CHARACTER FILENAME(*),INTEGER AMODE, INTEGER INFO,INTEGER FH,INTEGER IERROR) |
MPI_File_read_at | int MPI_File_read_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status); |
MPI_FILE_READ_AT | MPI_FILE_READ_AT(INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
MPI_File_read_at_all | int MPI_File_read_at_all (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status); |
MPI_FILE_READ_AT_ALL | MPI_FILE_READ_AT_ALL(INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
MPI_File_set_info | int MPI_File_set_info (MPI_File fh,MPI_Info info); |
MPI_FILE_SET_INFO | MPI_FILE_SET_INFO(INTEGER FH,INTEGER INFO,INTEGER IERROR) |
MPI_File_set_size | int MPI_File_set_size (MPI_File fh,MPI_Offset size); |
MPI_FILE_SET_SIZE | MPI_FILE_SET_SIZE (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) SIZE, INTEGER IERROR) |
MPI_File_set_view | int MPI_File_set_view (MPI_File fh,MPI_Offset disp, MPI_Datatype etype,MPI_Datatype filetype, char *datarep,MPI_Info info); |
MPI_FILE_SET_VIEW | MPI_FILE_SET_VIEW (INTEGER FH,INTEGER(KIND=MPI_OFFSET_KIND) DISP, INTEGER ETYPE,INTEGER FILETYPE,CHARACTER DATAREP(*),INTEGER INFO, INTEGER IERROR) |
MPI_File_sync | int MPI_File_sync (MPI_File fh); |
MPI_FILE_SYNC | MPI_FILE_SYNC (INTEGER FH,INTEGER IERROR) |
MPI_File_write_at | int MPI_File_write_at (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status); |
MPI_FILE_WRITE_AT | MPI_FILE_WRITE_AT(INTEGER FH,INTEGER(KIND_MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE), INTEGER IERROR) |
MPI_File_write_at_all | int MPI_File_write_at_all (MPI_File fh,MPI_Offset offset,void *buf, int count,MPI_Datatype datatype,MPI_Status *status); |
MPI_FILE_WRITE_AT_ALL | MPI_FILE_WRITE_AT_ALL (INTEGER FH, INTEGER (KIND=MPI_OFFSET_KIND) OFFSET, CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER STATUS(MPI_STATUS_SIZE),INTEGER IERROR) |
Table 14 lists the C and FORTRAN bindings for info objects.
Table 14. Bindings for info Objects
C/FORTRAN Subroutine | C/FORTRAN Binding |
---|---|
MPI_Info_create | int MPI_Info_create (MPI_Info *info); |
MPI_INFO_CREATE | MPI_INFO_CREATE (INTEGER INFO,INTEGER IERROR) |
MPI_Info_delete | int MPI_Info_delete (MPI_Info info,char *key); |
MPI_INFO_DELETE | MPI_INFO_DELETE (INTEGER INFO,CHARACTER KEY(*), INTEGER IERROR) |
MPI_Info_dup | int MPI_Info_dup (MPI_Info info,MPI_Info *newinfo); |
MPI_INFO_DUP | MPI_INFO_DUP (INTEGER INFO,INTEGER NEWINFO,INTEGER IERROR) |
MPI_Info_free | int MPI_Info_free (MPI_Info *info); |
MPI_INFO_FREE | MPI_INFO_FREE (INTEGER INFO,INTEGER IERROR) |
MPI_Info_get | int MPI_Info_get (MPI_Info info,char *key,int valuelen, char *value,int *flag); |
MPI_INFO_GET | MPI_INFO_GET (INTEGER INFO,CHARACTER KEY(*),INTEGER VALUELEN, CHARACTER VALUE(*),LOGICAL FLAG,INTEGER IERROR) |
MPI_Info_get_nkeys | int MPI_Info_get_nkeys (MPI_Info info,int *nkeys); |
MPI_INFO_GET_NKEYS | MPI_INFO_GET_NKEYS (INTEGER INFO,INTEGER NKEYS,INTEGER IERROR) |
MPI_Info_get_nthkey | int MPI_Info_get_nthkey (MPI_Info info, int n, char *key); |
MPI_INFO_GET_NTHKEY | MPI_INFO_GET_NTHKEY (INTEGER INFO,INTEGER N,CHARACTER KEY(*), INTEGER IERROR) |
MPI_Info_get_valuelen | int MPI_Info_get_valuelen (MPI_Info info,char *key,int *valuelen, int *flag); |
MPI_INFO_GET_VALUELEN | MPI_INFO_GET_VALUELEN (INTEGER INFO,CHARACTER KEY(*), INTEGER VALUELEN,LOGICAL FLAG,INTEGER IERROR) |
MPI_Info_set | int MPI_Info_set(MPI_Info info,char *key,char *value); |
MPI_INFO_SET | MPI_INFO_SET (INTEGER INFO,CHARACTER KEY(*),CHARACTER VALUE(*), INTEGER IERROR) |