-/* Copyright (c) 2013-2018. 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
namespace simgrid{
namespace smpi{
int
-Coll_alltoallv_ompi_basic_linear::alltoallv(void *sbuf, int *scounts, int *sdisps,
+Coll_alltoallv_ompi_basic_linear::alltoallv(const void *sbuf, const int *scounts, const int *sdisps,
MPI_Datatype sdtype,
- void *rbuf, int *rcounts, int *rdisps,
+ void *rbuf, const int *rcounts, const int *rdisps,
MPI_Datatype rdtype,
MPI_Comm comm)
{
MPI_Request *preq;
size = comm->size();
rank = comm->rank();
- MPI_Request *ireqs= static_cast<MPI_Request*>(xbt_malloc(sizeof(MPI_Request) * size * 2));
+ MPI_Request* ireqs = new MPI_Request[size * 2];
XBT_DEBUG(
"coll:tuned:alltoallv_intra_basic_linear rank %d", rank);
/* Post all receives first */
for (i = 0; i < size; ++i) {
- if (i == rank || 0 == rcounts[i]) {
+ if (i == rank) {
continue;
}
/* Now post all sends */
for (i = 0; i < size; ++i) {
- if (i == rank || 0 == scounts[i]) {
+ if (i == rank) {
continue;
}
if(ireqs[i]!=MPI_REQUEST_NULL)
Request::unref(&ireqs[i]);
}
- free(ireqs);
+ delete[] ireqs;
return MPI_SUCCESS;
}