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
Merge branch 'master' into adrien
[simgrid.git]
/
src
/
smpi
/
colls
/
allreduce
/
allreduce-smp-rsag-rab.cpp
diff --git
a/src/smpi/colls/allreduce/allreduce-smp-rsag-rab.cpp
b/src/smpi/colls/allreduce/allreduce-smp-rsag-rab.cpp
index
c0915a0
..
722b2ef
100644
(file)
--- a/
src/smpi/colls/allreduce/allreduce-smp-rsag-rab.cpp
+++ b/
src/smpi/colls/allreduce/allreduce-smp-rsag-rab.cpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2013-20
17
. The SimGrid Team.
+/* Copyright (c) 2013-20
20
. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
@@
-7,12
+7,12
@@
/*
* implemented by Pitch Patarasuk, 07/01/2007
*/
/*
* implemented by Pitch Patarasuk, 07/01/2007
*/
-#include "../colls_private.h"
+#include "../colls_private.h
pp
"
//#include <star-reduction.c>
/*
//#include <star-reduction.c>
/*
-This fu
cn
tion performs all-reduce operation as follow.
+This fu
nc
tion performs all-reduce operation as follow.
1) binomial_tree reduce inside each SMP node
2) reduce-scatter -inter between root of each SMP node
3) allgather - inter between root of each SMP node
1) binomial_tree reduce inside each SMP node
2) reduce-scatter -inter between root of each SMP node
3) allgather - inter between root of each SMP node
@@
-20,12
+20,11
@@
This fucntion performs all-reduce operation as follow.
*/
namespace simgrid{
namespace smpi{
*/
namespace simgrid{
namespace smpi{
-int
Coll_allreduce_smp_rsag_rab::allreduce(
void *sbuf, void *rbuf, int count,
-
MPI_Datatype dtype, MPI_Op op,
-
MPI_Comm comm)
+int
allreduce__smp_rsag_rab(const
void *sbuf, void *rbuf, int count,
+ MPI_Datatype dtype, MPI_Op op,
+ MPI_Comm comm)
{
int comm_size, rank;
{
int comm_size, rank;
- void *tmp_buf;
int tag = COLL_TAG_ALLREDUCE;
int mask, src, dst;
MPI_Status status;
int tag = COLL_TAG_ALLREDUCE;
int mask, src, dst;
MPI_Status status;
@@
-40,12
+39,13
@@
int Coll_allreduce_smp_rsag_rab::allreduce(void *sbuf, void *rbuf, int count,
comm_size = comm->size();
if((comm_size&(comm_size-1)))
comm_size = comm->size();
if((comm_size&(comm_size-1)))
- THROWF(arg_error,0, "allreduce smp rsag rab algorithm can't be used with non power of two number of processes ! ");
+ throw std::invalid_argument(
+ "allreduce smp rsag rab algorithm can't be used with non power of two number of processes!");
rank = comm->rank();
MPI_Aint extent;
extent = dtype->get_extent();
rank = comm->rank();
MPI_Aint extent;
extent = dtype->get_extent();
-
tmp_buf = (void *)
smpi_get_tmp_sendbuffer(count * extent);
+
unsigned char* tmp_buf =
smpi_get_tmp_sendbuffer(count * extent);
int intra_rank, inter_rank;
intra_rank = rank % num_core;
int intra_rank, inter_rank;
intra_rank = rank % num_core;