87 int len = 0, extent = 0, k = 0;
88 for( k = 0; k < count; ++k ) {
89 switch( array_of_types[k] ) {
100 len =
sizeof(double);
105 len = array_of_displacements[k] + array_of_blocklengths[k] * len;
159 for( k = 0; k < count * datatype; ++k )
160 _recvbuf[k] =_sendbuf[k];
171 for( k = 0; k < count * datatype; ++k )
172 _recvbuf[k] =_sendbuf[k];
193 assert(sendtype == recvtype);
194 assert(sendcount == recvcount);
195 for( k = 0; k < sendcount * sendtype; ++k )
196 _recvbuf[k] =_sendbuf[k];
int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
int MPI_Type_free(MPI_Datatype *op)
int MPI_Barrier(MPI_Comm comm)
void( MPI_User_function)(void *, void *, int *, MPI_Datatype *)
int MPI_Comm_size(MPI_Comm comm, int *size)
int MPI_Type_commit(MPI_Datatype *datatype)
int MPI_Comm_rank(MPI_Comm comm, int *rank)
int MPI_Init(int *argc, char ***argv)
int MPI_Sendrecv_replace(void *buff, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, RTOP_MPI_Status *status)
int MPI_Op_create(MPI_User_function *func, int communitive, MPI_Op *op)
int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
#define MPI_DATATYPE_NULL
int MPI_Type_struct(int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype *array_of_types, MPI_Datatype *data_type)
int MPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
int MPI_Op_free(MPI_Op *op)
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, RTOP_MPI_Status *status)
int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)