Correctly set the world for the application

This commit is contained in:
Alejandro Gallo 2022-05-06 13:53:51 +02:00
parent 2bf8851962
commit d76c33f9e8
3 changed files with 15 additions and 9 deletions

2
.gitignore vendored
View File

@ -20,3 +20,5 @@ a.out
config.mk config.mk
/docs/doxygen-awesome-css/ /docs/doxygen-awesome-css/
/atrip.html
/TAGS

View File

@ -2951,6 +2951,7 @@ namespace atrip {
#include <sstream> #include <sstream>
#include <string> #include <string>
#include <map> #include <map>
#include <mpi.h>
#include <atrip/Utils.hpp> #include <atrip/Utils.hpp>
@ -2968,8 +2969,9 @@ namespace atrip {
static int rank; static int rank;
static int np; static int np;
static MPI_Comm communicator;
static Timings chrono; static Timings chrono;
static void init(); static void init(MPI_Comm);
template <typename F=double> template <typename F=double>
struct Input { struct Input {
@ -3041,6 +3043,7 @@ template bool RankMap<double>::RANK_ROUND_ROBIN;
template bool RankMap<Complex>::RANK_ROUND_ROBIN; template bool RankMap<Complex>::RANK_ROUND_ROBIN;
int Atrip::rank; int Atrip::rank;
int Atrip::np; int Atrip::np;
MPI_Comm Atrip::communicator;
Timings Atrip::chrono; Timings Atrip::chrono;
// user printing block // user printing block
@ -3049,9 +3052,10 @@ void atrip::registerIterationDescriptor(IterationDescriptor d) {
IterationDescription::descriptor = d; IterationDescription::descriptor = d;
} }
void Atrip::init() { void Atrip::init(MPI_Comm world) {
MPI_Comm_rank(MPI_COMM_WORLD, &Atrip::rank); Atrip::communicator = world;
MPI_Comm_size(MPI_COMM_WORLD, &Atrip::np); MPI_Comm_rank(world, &Atrip::rank);
MPI_Comm_size(world, &Atrip::np);
} }
template <typename F> template <typename F>
@ -3059,7 +3063,7 @@ Atrip::Output Atrip::run(Atrip::Input<F> const& in) {
const int np = Atrip::np; const int np = Atrip::np;
const int rank = Atrip::rank; 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 No = in.ei->lens[0];
const size_t Nv = in.ea->lens[0]; const size_t Nv = in.ea->lens[0];
@ -3083,10 +3087,10 @@ Atrip::Output Atrip::run(Atrip::Input<F> const& in) {
RankMap<F>::RANK_ROUND_ROBIN = in.rankRoundRobin; RankMap<F>::RANK_ROUND_ROBIN = in.rankRoundRobin;
if (RankMap<F>::RANK_ROUND_ROBIN) { if (RankMap<F>::RANK_ROUND_ROBIN) {
LOG(0,"Atrip") << "Doing rank round robin slices distribution" << "\n"; LOG(0,"Atrip") << "Doing rank round robin slices distribution\n";
} else { } else {
LOG(0,"Atrip") 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<F> const& in) {
const size_t const size_t
iterationMod = (in.percentageMod > 0) iterationMod = (in.percentageMod > 0)
? nIterations * in.percentageMod / 100 ? nIterations * in.percentageMod / 100.0
: in.iterationMod : in.iterationMod
, iteration1Percent = nIterations * 0.01 , iteration1Percent = nIterations * 0.01

View File

@ -130,7 +130,7 @@ int main(int argc, char** argv) {
Vhhhp.fill_random(0, 1); Vhhhp.fill_random(0, 1);
Vppph->fill_random(0, 1); Vppph->fill_random(0, 1);
atrip::Atrip::init(); atrip::Atrip::init(MPI_COMM_WORLD);
const auto in const auto in
= atrip::Atrip::Input<double>() = atrip::Atrip::Input<double>()
// Tensors // Tensors