1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-13 01:05:36 +00:00

updated from cambridge mpi3 shakeout

This commit is contained in:
Peter Boyle 2017-08-25 11:41:01 +01:00
parent c3b1263e75
commit c289699d9a
3 changed files with 11 additions and 8 deletions

View File

@ -108,7 +108,7 @@ public:
static void Comms(void) static void Comms(void)
{ {
int Nloop=1000; int Nloop=200;
int nmu=0; int nmu=0;
int maxlat=32; int maxlat=32;
@ -197,7 +197,7 @@ public:
timestat.statistics(t_time); timestat.statistics(t_time);
// for(int i=0;i<t_time.size();i++){ // for(int i=0;i<t_time.size();i++){
// std::cout << i<<" "<<t_time[i]<<std::endl; // std::cout << i<<" "<<t_time[i]<<std::endl;
// } // }
dbytes=dbytes*ppn; dbytes=dbytes*ppn;

View File

@ -312,8 +312,11 @@ public:
std::vector<std::vector<CommsRequest_t> > reqs; std::vector<std::vector<CommsRequest_t> > reqs;
this->HaloExchangeOptGather(source,compress); this->HaloExchangeOptGather(source,compress);
double t1=usecond(); double t1=usecond();
this->CommunicateBegin(reqs); // Asynchronous MPI calls multidirectional, Isend etc...
this->CommunicateComplete(reqs); // this->CommunicateBegin(reqs);
// this->CommunicateComplete(reqs);
// Non-overlapped directions within a thread. Asynchronous calls except MPI3, threaded up to comm threads ways.
this->Communicate();
double t2=usecond(); timer1 += t2-t1; double t2=usecond(); timer1 += t2-t1;
this->CommsMerge(compress); this->CommsMerge(compress);
double t3=usecond(); timer2 += t3-t2; double t3=usecond(); timer2 += t3-t2;

View File

@ -365,10 +365,10 @@ class CartesianStencil { // Stencil runs along coordinate axes only; NO diagonal
Prepare(); Prepare();
HaloGather(source,compress); HaloGather(source,compress);
// Concurrent // Concurrent
CommunicateBegin(reqs); //CommunicateBegin(reqs);
CommunicateComplete(reqs); //CommunicateComplete(reqs);
// Sequential // Sequential, possibly threaded
// Communicate(); Communicate();
CommsMergeSHM(compress); CommsMergeSHM(compress);
CommsMerge(compress); CommsMerge(compress);
} }