A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix a doc error about actors (Tutorial_algorithms)
[simgrid.git]
/
src
/
smpi
/
colls
/
allgather
/
allgather-3dmesh.cpp
diff --git
a/src/smpi/colls/allgather/allgather-3dmesh.cpp
b/src/smpi/colls/allgather/allgather-3dmesh.cpp
index
58927c9
..
b189670
100644
(file)
--- a/
src/smpi/colls/allgather/allgather-3dmesh.cpp
+++ b/
src/smpi/colls/allgather/allgather-3dmesh.cpp
@@
-1,10
+1,10
@@
-/* Copyright (c) 2013-201
7
. The SimGrid Team.
+/* Copyright (c) 2013-201
9
. 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. */
* 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.h
pp
"
/*****************************************************************************
/*****************************************************************************
@@
-96,12
+96,11
@@
namespace simgrid{
namespace smpi{
namespace smpi{
-int Coll_allgather_3dmesh::allgather(void *send_buff, int send_count,
+int Coll_allgather_3dmesh::allgather(
const
void *send_buff, int send_count,
MPI_Datatype send_type, void *recv_buff,
int recv_count, MPI_Datatype recv_type,
MPI_Comm comm)
{
MPI_Datatype send_type, void *recv_buff,
int recv_count, MPI_Datatype recv_type,
MPI_Comm comm)
{
- MPI_Request *req, *req_ptr;
MPI_Aint extent;
int i, src, dst, rank, num_procs, block_size, my_z_base;
MPI_Aint extent;
int i, src, dst, rank, num_procs, block_size, my_z_base;
@@
-114,8
+113,7
@@
int Coll_allgather_3dmesh::allgather(void *send_buff, int send_count,
extent = send_type->get_extent();
if (not is_3dmesh(num_procs, &X, &Y, &Z))
extent = send_type->get_extent();
if (not is_3dmesh(num_procs, &X, &Y, &Z))
- THROWF(arg_error,0, "allgather_3dmesh algorithm can't be used with this number of processes! ");
-
+ throw std::invalid_argument("allgather_3dmesh algorithm can't be used with this number of processes!");
num_reqs = X;
num_reqs = X;
@@
-133,9
+131,8
@@
int Coll_allgather_3dmesh::allgather(void *send_buff, int send_count,
block_size = extent * send_count;
block_size = extent * send_count;
- req = (MPI_Request *) xbt_malloc(num_reqs * sizeof(MPI_Request));
-
- req_ptr = req;
+ MPI_Request* req = new MPI_Request[num_reqs];
+ MPI_Request* req_ptr = req;
// do local allgather/local copy
recv_offset = rank * block_size;
// do local allgather/local copy
recv_offset = rank * block_size;
@@
-206,7
+203,7
@@
int Coll_allgather_3dmesh::allgather(void *send_buff, int send_count,
}
Request::waitall(Z - 1, req, MPI_STATUSES_IGNORE);
}
Request::waitall(Z - 1, req, MPI_STATUSES_IGNORE);
-
free(req)
;
+
delete[] req
;
return MPI_SUCCESS;
}
return MPI_SUCCESS;
}