X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/40616078da72e823931c1fb884949054699ec39d..364eee0fc6ab77fddc5437ac273527bd27711724:/src/smpi/colls/alltoall/alltoall-mvapich-scatter-dest.cpp diff --git a/src/smpi/colls/alltoall/alltoall-mvapich-scatter-dest.cpp b/src/smpi/colls/alltoall/alltoall-mvapich-scatter-dest.cpp index 047c876779..bb5edb4fab 100644 --- a/src/smpi/colls/alltoall/alltoall-mvapich-scatter-dest.cpp +++ b/src/smpi/colls/alltoall/alltoall-mvapich-scatter-dest.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2014. The SimGrid Team. +/* Copyright (c) 2013-2017. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -37,13 +37,14 @@ * copyright file COPYRIGHT in the top level MVAPICH2 directory. * */ - + //correct on stampede #define MV2_ALLTOALL_THROTTLE_FACTOR 4 - -#include "../colls_private.h" -int smpi_coll_tuned_alltoall_mvapich2_scatter_dest( +#include "../colls_private.hpp" +namespace simgrid{ +namespace smpi{ +int Coll_alltoall_mvapich2_scatter_dest::alltoall( void *sendbuf, int sendcount, MPI_Datatype sendtype, @@ -58,16 +59,16 @@ int smpi_coll_tuned_alltoall_mvapich2_scatter_dest( int dst, rank; MPI_Request *reqarray; MPI_Status *starray; - + if (recvcount == 0) return MPI_SUCCESS; - + comm_size = comm->size(); rank = comm->rank(); - + /* Get extent of send and recv types */ recvtype_extent = recvtype->get_extent(); sendtype_extent = sendtype->get_extent(); - + /* Medium-size message. Use isend/irecv with scattered destinations. Use Tony Ladd's modification to post only a small number of isends/irecvs at a time. */ @@ -82,20 +83,20 @@ int smpi_coll_tuned_alltoall_mvapich2_scatter_dest( there are only a few isend/irecvs left) */ int ii, ss, bblock; - + //Stampede is configured with bblock = MV2_ALLTOALL_THROTTLE_FACTOR;//mv2_coll_param.alltoall_throttle_factor; - + if (bblock >= comm_size) bblock = comm_size; /* If throttle_factor is n, each process posts n pairs of isend/irecv in each iteration. */ - + /* FIXME: This should use the memory macros (there are storage leaks here if there is an error, for example) */ reqarray= (MPI_Request*)xbt_malloc(2*bblock*sizeof(MPI_Request)); - + starray=(MPI_Status *)xbt_malloc(2*bblock*sizeof(MPI_Status)); - + for (ii=0; ii