diff --git a/.gitignore b/.gitignore index b89eb25..a9ca2cc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ a.out config.mk /docs/doxygen-awesome-css/ +/atrip.html +/TAGS diff --git a/atrip.org b/atrip.org index b08ef4f..b0025f8 100644 --- a/atrip.org +++ b/atrip.org @@ -2951,6 +2951,7 @@ namespace atrip { #include #include #include +#include #include @@ -2968,8 +2969,9 @@ namespace atrip { static int rank; static int np; + static MPI_Comm communicator; static Timings chrono; - static void init(); + static void init(MPI_Comm); template struct Input { @@ -3041,6 +3043,7 @@ template bool RankMap::RANK_ROUND_ROBIN; template bool RankMap::RANK_ROUND_ROBIN; int Atrip::rank; int Atrip::np; +MPI_Comm Atrip::communicator; Timings Atrip::chrono; // user printing block @@ -3049,9 +3052,10 @@ void atrip::registerIterationDescriptor(IterationDescriptor d) { IterationDescription::descriptor = d; } -void Atrip::init() { - MPI_Comm_rank(MPI_COMM_WORLD, &Atrip::rank); - MPI_Comm_size(MPI_COMM_WORLD, &Atrip::np); +void Atrip::init(MPI_Comm world) { + Atrip::communicator = world; + MPI_Comm_rank(world, &Atrip::rank); + MPI_Comm_size(world, &Atrip::np); } template @@ -3059,7 +3063,7 @@ Atrip::Output Atrip::run(Atrip::Input const& in) { const int np = Atrip::np; const int rank = Atrip::rank; - MPI_Comm universe = in.ei->wrld->comm; + MPI_Comm universe = Atrip::communicator; const size_t No = in.ei->lens[0]; const size_t Nv = in.ea->lens[0]; @@ -3083,10 +3087,10 @@ Atrip::Output Atrip::run(Atrip::Input const& in) { RankMap::RANK_ROUND_ROBIN = in.rankRoundRobin; if (RankMap::RANK_ROUND_ROBIN) { - LOG(0,"Atrip") << "Doing rank round robin slices distribution" << "\n"; + LOG(0,"Atrip") << "Doing rank round robin slices distribution\n"; } else { LOG(0,"Atrip") - << "Doing node > local rank round robin slices distribution" << "\n"; + << "Doing node > local rank round robin slices distribution\n"; } @@ -3159,7 +3163,7 @@ Atrip::Output Atrip::run(Atrip::Input const& in) { const size_t iterationMod = (in.percentageMod > 0) - ? nIterations * in.percentageMod / 100 + ? nIterations * in.percentageMod / 100.0 : in.iterationMod , iteration1Percent = nIterations * 0.01 diff --git a/bench/test_main.cxx b/bench/test_main.cxx index f23ab37..63786ac 100644 --- a/bench/test_main.cxx +++ b/bench/test_main.cxx @@ -130,7 +130,7 @@ int main(int argc, char** argv) { Vhhhp.fill_random(0, 1); Vppph->fill_random(0, 1); - atrip::Atrip::init(); + atrip::Atrip::init(MPI_COMM_WORLD); const auto in = atrip::Atrip::Input() // Tensors