-/* 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{
-
-// Allgather-Non-Topoloty-Scecific-Logical-Ring algorithm
+// Allgather-Non-Topology-Specific-Logical-Ring algorithm
int
-Coll_allgather_NTSLR_NB::allgather(void *sbuf, int scount, MPI_Datatype stype,
- void *rbuf, int rcount, MPI_Datatype rtype,
- MPI_Comm comm)
+allgather__NTSLR_NB(const void *sbuf, int scount, MPI_Datatype stype,
+ void *rbuf, int rcount, MPI_Datatype rtype,
+ MPI_Comm comm)
{
MPI_Aint rextent, sextent;
MPI_Status status, status2;
size = comm->size();
rextent = rtype->get_extent();
sextent = stype->get_extent();
- MPI_Request *rrequest_array;
- MPI_Request *srequest_array;
- rrequest_array = (MPI_Request *) xbt_malloc(size * sizeof(MPI_Request));
- srequest_array = (MPI_Request *) xbt_malloc(size * sizeof(MPI_Request));
+ MPI_Request* rrequest_array = new MPI_Request[size];
+ MPI_Request* srequest_array = new MPI_Request[size];
// irregular case use default MPI fucntions
if (scount * sextent != rcount * rextent) {
XBT_WARN("MPI_allgather_NTSLR_NB use default MPI_allgather.");
- Coll_allgather_default::allgather(sbuf, scount, stype, rbuf, rcount, rtype, comm);
+ allgather__default(sbuf, scount, stype, rbuf, rcount, rtype, comm);
return MPI_SUCCESS;
}
Request::wait(&srequest_array[i], &status2);
}
- free(rrequest_array);
- free(srequest_array);
+ delete[] rrequest_array;
+ delete[] srequest_array;
return MPI_SUCCESS;
}