X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ae0e5607956f1b19a4605d297bc6d51e5e18f845..d5cc61332edae35867a41bb38ad9401faaab2716:/src/smpi/colls/allgather/allgather-SMP-NTS.cpp diff --git a/src/smpi/colls/allgather/allgather-SMP-NTS.cpp b/src/smpi/colls/allgather/allgather-SMP-NTS.cpp index 366f74f4fd..0e4e3dba1c 100644 --- a/src/smpi/colls/allgather/allgather-SMP-NTS.cpp +++ b/src/smpi/colls/allgather/allgather-SMP-NTS.cpp @@ -1,16 +1,16 @@ -/* Copyright (c) 2013-2017. The SimGrid Team. +/* Copyright (c) 2013-2019. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "../colls_private.h" +#include "../colls_private.hpp" namespace simgrid{ namespace smpi{ -int Coll_allgather_SMP_NTS::allgather(void *sbuf, int scount, +int Coll_allgather_SMP_NTS::allgather(const void *sbuf, int scount, MPI_Datatype stype, void *rbuf, int rcount, MPI_Datatype rtype, MPI_Comm comm) @@ -47,7 +47,7 @@ int Coll_allgather_SMP_NTS::allgather(void *sbuf, int scount, if (comm_size <= num_core) { XBT_WARN("MPI_allgather_SMP_NTS use default MPI_allgather."); Coll_allgather_default::allgather(sbuf, scount, stype, rbuf, rcount, rtype, comm); - return MPI_SUCCESS; + return MPI_SUCCESS; } // the last SMP node may have fewer number of running processes than all others @@ -78,14 +78,14 @@ int Coll_allgather_SMP_NTS::allgather(void *sbuf, int scount, } - // INTER-SMP-ALLGATHER + // INTER-SMP-ALLGATHER // Every root of each SMP node post INTER-Sendrecv, then do INTRA-Bcast for each receiving message // Use logical ring algorithm // root of each SMP if (intra_rank == 0) { - MPI_Request *rrequest_array = xbt_new(MPI_Request, inter_comm_size - 1); - MPI_Request *srequest_array = xbt_new(MPI_Request, inter_comm_size - 1); + MPI_Request* rrequest_array = new MPI_Request[inter_comm_size - 1]; + MPI_Request* srequest_array = new MPI_Request[inter_comm_size - 1]; src = ((inter_rank - 1 + inter_comm_size) % inter_comm_size) * num_core; dst = ((inter_rank + 1) % inter_comm_size) * num_core; @@ -133,8 +133,8 @@ int Coll_allgather_SMP_NTS::allgather(void *sbuf, int scount, } Request::waitall(inter_comm_size - 1, srequest_array, MPI_STATUSES_IGNORE); - xbt_free(rrequest_array); - xbt_free(srequest_array); + delete[] rrequest_array; + delete[] srequest_array; } // last rank of each SMP else if (intra_rank == (num_core_in_current_smp - 1)) {