Process control
MPI_Init(int *argc, char ***argv);
MPI_Finalize(void);
int MPI_Comm_spawn | (char
*command, char *argv[], int maxprocs, MPI_Info info, int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) |
Group operations
MPI_Abort (MPI_Comm comm, int errcode);
MPI_Comm_size (MPI_Comm comm, int *size);
MPI_Comm_rank (MPI_Comm comm, int *rank);
MPI_Comm_dup (MPI_comm comm, MPI_comm *newcomm);
MPI_Comm_split | (MPI_comm comm, int color, int key, MPI_Comm *newcomm); |
MPI_Comm_free (MPI_Comm *comm);
MPI_Intercomm_merge | (MPI_Comm intercomm, int high, MPI_Comm *newintracomm); |
MPI_Comm_remote_size (MPI_Comm intercomm, int *size);
Message passing
|
|
|
||
|
MPI_Send | (void *buf, int count, MPI_Datatype
dtype, int dest, int tag, MPI_Comm comm); |
MPI_Recv | (void *buf, int count, MPI_Datatype
dtype, int source, int tag, MPI_Comm comm, MPI_Status *status); |
MPI_Get_count (MPI_Status *status, MPI_Datatype dtype, int *count);
MPI_Probe (int source, int tag, MPI_Comm comm, MPI_Status *status);
wildcards: | MPI_ANY_SOURCE MPI_ANY_TAG |
actual values: | status.MPI_SOURCE status.MPI_TAG |
MPI_Isend | (void *buf, int count, MPI_Datatype
dtype, int dest, int tag, MPI_Comm comm, MPI_Request *req); |
MPI_Irecv | (void *buf, int count, MPI_Datatype
dtype, int source, int tag, MPI_Comm comm, MPI_Request *req); |
MPI_Test (MPI_Request *req, int *flag, MPI_Status *status);
MPI_Wait (MPI_Request *req, MPI_Status *status);
MPI_Iprobe | (int source, int tag, MPI_Comm comm,
int *flag, MPI_Status *status); |
MPI_Bcast | (void *buf, int count, MPI_Datatype
dtype, int root, MPI_Comm comm); |
MPI_Scatter | (void *sendbuf, int sendcount,
MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm); |
MPI_Gather | (void *sendbuf, int sendcount,
MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm); |
MPI_Reduce | (void *sendbuf, void *recvbuf, int count, MPI_Datatype dtype, MPI_Op op, int root, MPI_Comm comm); |
Operations (commutative): |
MPI_MAX maximum MPI_MIN minimum MPI_SUM sum MPI_PROD product MPI_LAND logical and MPI_BAND bitwise and MPI_LOR logical or MPI_BOR bitwise or MPI_LXOR logical exclusive or MPI_BXOR bitwise exclusive or |
Predefined datatypes: |
MPI_CHAR signed char MPI_SHORT signed short MPI_INT signed int MPI_LONG signed long MPI_UNSIGNED_CHAR unsigned char MPI_UNSIGNED_SHORT unsigned short MPI_UNSIGNED unsigned int MPI_UNSIGNED_LONG unsigned long MPI_FLOAT float MPI_DOUBLE double MPI_LONG_DOUBLE long double MPI_BYTE a raw byte MPI_UB array elements displacement MPI_PACKED packed type |
Defining new types:
MPI_Type_Vector | (int count, int blocklength, int
stride, MPI_Datatype oldtype, MPI_Datatype *newtype); |
MPI_Type_struct | (int count, int blocklengths[],
MPI_Aint displacements[], MPI_Datatype dtypes[], MPI_Datatype *newtype); |
MPI_Address(void *data, MPI_Aint *displacement);
MPI_Type_commit(MPI_Datatype *type);