00001 #ifndef MPIB_COLLECTIVES_H_
00002 #define MPIB_COLLECTIVES_H_
00003
00004 #include <mpi.h>
00005
00011 #ifdef __cplusplus
00012 extern "C" {
00013 #endif
00014
00016 typedef int (*MPIB_Send)(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm);
00017
00019 typedef int (*MPIB_Recv)(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status* status);
00020
00022 typedef int (*MPIB_Scatter)(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00023 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00024 int root, MPI_Comm comm);
00025
00027 typedef int (*MPIB_Gather)(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00028 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00029 int root, MPI_Comm comm);
00030
00032 typedef int (*MPIB_Scatterv)(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00033 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00034 int root, MPI_Comm comm);
00035
00037 typedef int (*MPIB_Gatherv)(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00038 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00039 int root, MPI_Comm comm);
00040
00042 typedef int (*MPIB_Bcast)(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00043
00045 typedef int (*MPIB_Reduce)(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00046 MPI_Op op, int root, MPI_Comm comm);
00047
00049 typedef int (*MPIB_Alltoall)(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype,
00050 MPI_Comm comm);
00051
00052 #ifdef __cplusplus
00053 }
00054 #endif
00055
00057 #endif