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
I hope I understood how to use RPATH on Mac OSX
[simgrid.git]
/
src
/
smpi
/
colls
/
allreduce-rab1.c
diff --git
a/src/smpi/colls/allreduce-rab1.c
b/src/smpi/colls/allreduce-rab1.c
index
2cfab0a
..
173d3e5
100644
(file)
--- a/
src/smpi/colls/allreduce-rab1.c
+++ b/
src/smpi/colls/allreduce-rab1.c
@@
-14,13
+14,14
@@
int smpi_coll_tuned_allreduce_rab1(void *sbuff, void *rbuff,
{
MPI_Status status;
MPI_Aint extent;
- int tag = COLL_TAG_ALLREDUCE, rank, nprocs, send_size, newcnt, share;
- int pof2 = 1, mask, send_idx, recv_idx, dst, send_cnt, recv_cnt;
+ int tag = COLL_TAG_ALLREDUCE, send_size, newcnt, share;
+ unsigned int pof2 = 1, mask;
+ int send_idx, recv_idx, dst, send_cnt, recv_cnt;
void *recv, *tmp_buf;
- rank = smpi_comm_rank(comm);
- nprocs = smpi_comm_size(comm);
+
unsigned int
rank = smpi_comm_rank(comm);
+
unsigned int
nprocs = smpi_comm_size(comm);
if((nprocs&(nprocs-1)))
THROWF(arg_error,0, "allreduce rab1 algorithm can't be used with non power of two number of processes ! ");
@@
-39,8
+40,8
@@
int smpi_coll_tuned_allreduce_rab1(void *sbuff, void *rbuff,
send_size = (count + nprocs) / nprocs;
newcnt = send_size * nprocs;
- recv = (void *)
xbt_malloc
(extent * newcnt);
- tmp_buf = (void *)
xbt_malloc
(extent * newcnt);
+ recv = (void *)
smpi_get_tmp_recvbuffer
(extent * newcnt);
+ tmp_buf = (void *)
smpi_get_tmp_sendbuffer
(extent * newcnt);
memcpy(recv, sbuff, extent * count);
@@
-70,13
+71,13
@@
int smpi_coll_tuned_allreduce_rab1(void *sbuff, void *rbuff,
mpi_coll_allgather_fun(tmp_buf, recv_cnt, dtype, recv, recv_cnt, dtype, comm);
memcpy(rbuff, recv, count * extent);
-
free
(recv);
-
free
(tmp_buf);
+
smpi_free_tmp_buffer
(recv);
+
smpi_free_tmp_buffer
(tmp_buf);
}
else {
- tmp_buf = (void *)
xbt_malloc
(extent * count);
+ tmp_buf = (void *)
smpi_get_tmp_sendbuffer
(extent * count);
memcpy(rbuff, sbuff, count * extent);
mask = pof2 / 2;
share = count / pof2;
@@
-102,7
+103,7
@@
int smpi_coll_tuned_allreduce_rab1(void *sbuff, void *rbuff,
memcpy(tmp_buf, (char *) rbuff + recv_idx * extent, recv_cnt * extent);
mpi_coll_allgather_fun(tmp_buf, recv_cnt, dtype, rbuff, recv_cnt, dtype, comm);
-
free
(tmp_buf);
+
smpi_free_tmp_buffer
(tmp_buf);
}
return MPI_SUCCESS;