Correctly set the world for the application
This commit is contained in:
parent
2bf8851962
commit
d76c33f9e8
2
.gitignore
vendored
2
.gitignore
vendored
@ -20,3 +20,5 @@ a.out
|
|||||||
config.mk
|
config.mk
|
||||||
|
|
||||||
/docs/doxygen-awesome-css/
|
/docs/doxygen-awesome-css/
|
||||||
|
/atrip.html
|
||||||
|
/TAGS
|
||||||
|
|||||||
20
atrip.org
20
atrip.org
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user