mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Merge branch 'develop' of https://github.com/paboyle/Grid into develop
This commit is contained in:
commit
f9e28577f3
@ -52,6 +52,8 @@ public:
|
|||||||
GridBase(const std::vector<int> & processor_grid,
|
GridBase(const std::vector<int> & processor_grid,
|
||||||
const CartesianCommunicator &parent) : CartesianCommunicator(processor_grid,parent) {};
|
const CartesianCommunicator &parent) : CartesianCommunicator(processor_grid,parent) {};
|
||||||
|
|
||||||
|
virtual ~GridBase() = default;
|
||||||
|
|
||||||
// Physics Grid information.
|
// Physics Grid information.
|
||||||
std::vector<int> _simd_layout;// Which dimensions get relayed out over simd lanes.
|
std::vector<int> _simd_layout;// Which dimensions get relayed out over simd lanes.
|
||||||
std::vector<int> _fdimensions;// (full) Global dimensions of array prior to cb removal
|
std::vector<int> _fdimensions;// (full) Global dimensions of array prior to cb removal
|
||||||
|
@ -81,6 +81,8 @@ public:
|
|||||||
Init(dimensions,simd_layout,processor_grid);
|
Init(dimensions,simd_layout,processor_grid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual ~GridCartesian() = default;
|
||||||
|
|
||||||
void Init(const std::vector<int> &dimensions,
|
void Init(const std::vector<int> &dimensions,
|
||||||
const std::vector<int> &simd_layout,
|
const std::vector<int> &simd_layout,
|
||||||
const std::vector<int> &processor_grid)
|
const std::vector<int> &processor_grid)
|
||||||
|
@ -133,6 +133,8 @@ public:
|
|||||||
{
|
{
|
||||||
Init(base->_fdimensions,base->_simd_layout,base->_processors,checker_dim_mask,checker_dim) ;
|
Init(base->_fdimensions,base->_simd_layout,base->_processors,checker_dim_mask,checker_dim) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual ~GridRedBlackCartesian() = default;
|
||||||
#if 0
|
#if 0
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
// Create redblack grid ;; deprecate these. Should not
|
// Create redblack grid ;; deprecate these. Should not
|
||||||
|
@ -155,6 +155,7 @@ class CartesianCommunicator {
|
|||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
CartesianCommunicator(const std::vector<int> &processors,const CartesianCommunicator &parent);
|
CartesianCommunicator(const std::vector<int> &processors,const CartesianCommunicator &parent);
|
||||||
CartesianCommunicator(const std::vector<int> &pdimensions_in);
|
CartesianCommunicator(const std::vector<int> &pdimensions_in);
|
||||||
|
virtual ~CartesianCommunicator();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#if defined (GRID_COMMS_MPI) || defined (GRID_COMMS_MPIT)
|
#if defined (GRID_COMMS_MPI) || defined (GRID_COMMS_MPIT)
|
||||||
|
@ -52,6 +52,13 @@ void CartesianCommunicator::Init(int *argc, char ***argv) {
|
|||||||
MPI_Comm_dup (MPI_COMM_WORLD,&communicator_world);
|
MPI_Comm_dup (MPI_COMM_WORLD,&communicator_world);
|
||||||
ShmInitGeneric();
|
ShmInitGeneric();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CartesianCommunicator::~CartesianCommunicator()
|
||||||
|
{
|
||||||
|
if (communicator && !MPI::Is_finalized())
|
||||||
|
MPI_Comm_free(&communicator);
|
||||||
|
}
|
||||||
|
|
||||||
void CartesianCommunicator::GlobalSum(uint32_t &u){
|
void CartesianCommunicator::GlobalSum(uint32_t &u){
|
||||||
int ierr=MPI_Allreduce(MPI_IN_PLACE,&u,1,MPI_UINT32_T,MPI_SUM,communicator);
|
int ierr=MPI_Allreduce(MPI_IN_PLACE,&u,1,MPI_UINT32_T,MPI_SUM,communicator);
|
||||||
assert(ierr==0);
|
assert(ierr==0);
|
||||||
|
@ -53,6 +53,13 @@ void CartesianCommunicator::Init(int *argc, char ***argv) {
|
|||||||
ShmInitGeneric();
|
ShmInitGeneric();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CartesianCommunicator::~CartesianCommunicator()
|
||||||
|
{
|
||||||
|
if (communicator && !MPI::Is_finalized())
|
||||||
|
MPI_Comm_free(&communicator);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CartesianCommunicator::GlobalSum(uint32_t &u){
|
void CartesianCommunicator::GlobalSum(uint32_t &u){
|
||||||
int ierr=MPI_Allreduce(MPI_IN_PLACE,&u,1,MPI_UINT32_T,MPI_SUM,communicator);
|
int ierr=MPI_Allreduce(MPI_IN_PLACE,&u,1,MPI_UINT32_T,MPI_SUM,communicator);
|
||||||
assert(ierr==0);
|
assert(ierr==0);
|
||||||
|
@ -56,6 +56,8 @@ CartesianCommunicator::CartesianCommunicator(const std::vector<int> &processors)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CartesianCommunicator::~CartesianCommunicator(){}
|
||||||
|
|
||||||
void CartesianCommunicator::GlobalSum(float &){}
|
void CartesianCommunicator::GlobalSum(float &){}
|
||||||
void CartesianCommunicator::GlobalSumVector(float *,int N){}
|
void CartesianCommunicator::GlobalSumVector(float *,int N){}
|
||||||
void CartesianCommunicator::GlobalSum(double &){}
|
void CartesianCommunicator::GlobalSum(double &){}
|
||||||
|
Loading…
Reference in New Issue
Block a user