X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/611d822b02f836d7abe031cced6adc4281ef4356..84402e8e2ee2a2d0bef25fdceb0a263ed8b471f6:/src/smpi/colls/allreduce/allreduce-smp-rdb.cpp diff --git a/src/smpi/colls/allreduce/allreduce-smp-rdb.cpp b/src/smpi/colls/allreduce/allreduce-smp-rdb.cpp index 920ba48739..489e719f80 100644 --- a/src/smpi/colls/allreduce/allreduce-smp-rdb.cpp +++ b/src/smpi/colls/allreduce/allreduce-smp-rdb.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2018. The SimGrid Team. +/* Copyright (c) 2013-2020. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -6,12 +6,11 @@ #include "../colls_private.hpp" /* IMPLEMENTED BY PITCH PATARASUK - Non-topoloty-specific (however, number of cores/node need to be changed) + Non-topology-specific (however, number of cores/node need to be changed) all-reduce operation designed for smp clusters It uses 2-layer communication: binomial for intra-communication and rdb for inter-communication*/ - /* ** NOTE ** Use -DMPICH2 if this code does not compile. MPICH1 code also work on MPICH2 on our cluster and the performance are similar. @@ -28,12 +27,11 @@ This fucntion performs all-reduce operation as follow. */ namespace simgrid{ namespace smpi{ -int Coll_allreduce_smp_rdb::allreduce(void *send_buf, void *recv_buf, int count, - MPI_Datatype dtype, MPI_Op op, - MPI_Comm comm) +int allreduce__smp_rdb(const void *send_buf, void *recv_buf, int count, + MPI_Datatype dtype, MPI_Op op, + MPI_Comm comm) { int comm_size, rank; - void *tmp_buf; int tag = COLL_TAG_ALLREDUCE; int mask, src, dst; MPI_Status status; @@ -58,7 +56,7 @@ int Coll_allreduce_smp_rdb::allreduce(void *send_buf, void *recv_buf, int count, rank = comm->rank(); MPI_Aint extent; extent = dtype->get_extent(); - tmp_buf = (void *) smpi_get_tmp_sendbuffer(count * extent); + unsigned char* tmp_buf = smpi_get_tmp_sendbuffer(count * extent); /* compute intra and inter ranking */ int intra_rank, inter_rank;