X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d6d03a0a88c2673c9e5c604d63912b77bc17fdd4..e44a0d71a8bacd7ab03e284fc32ad23731f5869c:/src/smpi/smpi_coll.hpp diff --git a/src/smpi/smpi_coll.hpp b/src/smpi/smpi_coll.hpp index 1f5dfa47c2..8410ae7ab7 100644 --- a/src/smpi/smpi_coll.hpp +++ b/src/smpi/smpi_coll.hpp @@ -36,8 +36,8 @@ static ret cat (COLL_UNPAREN args); \ #define COLL_APPLY(action, sig, name) action(sig, name) #define COLL_COMMA , -#define COLL_NOsep -#define COLL_NOTHING(...) +#define COLL_NOsep +#define COLL_NOTHING(...) #define COLL_GATHER_SIG gather, int, \ (void *send_buff, int send_count, MPI_Datatype send_type, \ @@ -90,31 +90,30 @@ typedef struct mpi_coll_description s_mpi_coll_description_t; class Colls{ public: - static XBT_PUBLIC(void) coll_help(const char *category, s_mpi_coll_description_t * table); static XBT_PUBLIC(int) find_coll_description(s_mpi_coll_description_t * table, const char *name, const char *desc); static void set_collectives(); - // for each collective type, create the set_* prototype, the description array - // and the function pointer - COLL_APPLY(COLL_DEFS,COLL_GATHER_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_ALLGATHER_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_ALLGATHERV_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_REDUCE_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_ALLREDUCE_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_REDUCE_SCATTER_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_SCATTER_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_BARRIER_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_BCAST_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_ALLTOALL_SIG,""); - COLL_APPLY(COLL_DEFS,COLL_ALLTOALLV_SIG,""); - -//These fairly unused collectives only have one implementation in SMPI - - static int gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, int root, MPI_Comm comm); - static int scatterv(void *sendbuf, int *sendcounts, int *displs, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm); - static int scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); - static int exscan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); + // for each collective type, create the set_* prototype, the description array and the function pointer + COLL_APPLY(COLL_DEFS, COLL_GATHER_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_ALLGATHER_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_ALLGATHERV_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_REDUCE_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_ALLREDUCE_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_REDUCE_SCATTER_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_SCATTER_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_BARRIER_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_BCAST_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_ALLTOALL_SIG, ""); + COLL_APPLY(COLL_DEFS, COLL_ALLTOALLV_SIG, ""); + + // These fairly unused collectives only have one implementation in SMPI + static int gatherv(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int* recvcounts, int* displs, + MPI_Datatype recvtype, int root, MPI_Comm comm); + static int scatterv(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype, void* recvbuf, + int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm); + static int scan(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); + static int exscan(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); static void (*smpi_coll_cleanup_callback)(); }; @@ -239,7 +238,6 @@ COLL_ALLREDUCES(COLL_PROTO, COLL_NOsep) * ALLTOALL * ************/ - #define COLL_ALLTOALLS(action, COLL_sep) \ COLL_APPLY(action, COLL_ALLTOALL_SIG, default) COLL_sep \ COLL_APPLY(action, COLL_ALLTOALL_SIG, 2dmesh) COLL_sep \ @@ -322,7 +320,6 @@ COLL_APPLY(action, COLL_BCAST_SIG, automatic) COLL_BCASTS(COLL_PROTO, COLL_NOsep) - /********** * REDUCE * **********/ @@ -368,11 +365,8 @@ COLL_APPLY(action, COLL_REDUCE_SCATTER_SIG, mvapich2) COLL_sep \ COLL_APPLY(action, COLL_REDUCE_SCATTER_SIG, impi) COLL_sep \ COLL_APPLY(action, COLL_REDUCE_SCATTER_SIG, automatic) - - COLL_REDUCE_SCATTERS(COLL_PROTO, COLL_NOsep) - /************* * SCATTER * *************/ @@ -412,8 +406,6 @@ COLL_APPLY(action, COLL_BARRIER_SIG, automatic) COLL_BARRIERS(COLL_PROTO, COLL_NOsep) - } } - #endif