Grid 0.7.0
GridCartesian Class Reference

#include <Cartesian_full.h>

Inheritance diagram for GridCartesian:
GridBase CartesianCommunicator GridThread SharedMemory

Public Types

enum  CommunicatorPolicy_t { CommunicatorPolicyConcurrent , CommunicatorPolicySequential }

Public Member Functions

virtual int CheckerBoardFromOindexTable (int Oindex)
virtual int CheckerBoardFromOindex (int Oindex)
virtual int CheckerBoarded (int dim)
virtual int CheckerBoard (const Coordinate &site)
virtual int CheckerBoardDestination (int cb, int shift, int dim)
virtual int CheckerBoardShiftForCB (int source_cb, int dim, int shift, int ocb)
virtual int CheckerBoardShift (int source_cb, int dim, int shift, int osite)
 GridCartesian (const Coordinate &dimensions, const Coordinate &simd_layout, const Coordinate &processor_grid, const GridCartesian &parent)
 GridCartesian (const Coordinate &dimensions, const Coordinate &simd_layout, const Coordinate &processor_grid, const GridCartesian &parent, int &split_rank)
 GridCartesian (const Coordinate &dimensions, const Coordinate &simd_layout, const Coordinate &processor_grid)
virtual ~GridCartesian ()=default
void Init (const Coordinate &dimensions, const Coordinate &simd_layout, const Coordinate &processor_grid)
virtual int oIndex (Coordinate &coor)
virtual int iIndex (Coordinate &lcoor)
int oIndexReduced (Coordinate &ocoor)
void oCoorFromOindex (Coordinate &coor, int Oindex)
void InOutCoorToLocalCoor (Coordinate &ocoor, Coordinate &icoor, Coordinate &lcoor)
void iCoorFromIindex (Coordinate &coor, int lane)
int PermuteDim (int dimension)
int PermuteType (int dimension)
int iSites (void) const
int Nsimd (void) const
int oSites (void) const
int lSites (void) const
int64_t gSites (void) const
int Nd (void) const
const Coordinate LocalStarts (void)
const CoordinateFullDimensions (void)
const CoordinateGlobalDimensions (void)
const CoordinateLocalDimensions (void)
const CoordinateVirtualLocalDimensions (void)
void show_decomposition ()
void GlobalIndexToGlobalCoor (int64_t gidx, Coordinate &gcoor)
void LocalIndexToLocalCoor (int lidx, Coordinate &lcoor)
void GlobalCoorToGlobalIndex (const Coordinate &gcoor, int64_t &gidx)
void GlobalCoorToProcessorCoorLocalCoor (Coordinate &pcoor, Coordinate &lcoor, const Coordinate &gcoor)
void GlobalCoorToRankIndex (int &rank, int &o_idx, int &i_idx, const Coordinate &gcoor)
void RankIndexToGlobalCoor (int rank, int o_idx, int i_idx, Coordinate &gcoor)
void RankIndexCbToFullGlobalCoor (int rank, int o_idx, int i_idx, int cb, Coordinate &fcoor)
void ProcessorCoorLocalCoorToGlobalCoor (Coordinate &Pcoor, Coordinate &Lcoor, Coordinate &gcoor)
void ShiftedRanks (int dim, int shift, int &source, int &dest)
int RankFromProcessorCoor (Coordinate &coor)
void ProcessorCoorFromRank (int rank, Coordinate &coor)
int Dimensions (void)
int IsBoss (void)
int BossRank (void)
int ThisRank (void)
const CoordinateThisProcessorCoor (void)
const CoordinateShmGrid (void)
const CoordinateProcessorGrid (void)
int ProcessorCount (void)
void GlobalMax (RealD &)
void GlobalMax (RealF &)
void GlobalSum (RealF &)
void GlobalSum (RealD &)
void GlobalSum (uint32_t &)
void GlobalSum (uint64_t &)
void GlobalSum (ComplexF &c)
void GlobalSum (ComplexD &c)
template<class obj>
void GlobalSum (obj &o)
void GlobalSumVector (RealF *, int N)
void GlobalSumVector (RealD *, int N)
void GlobalSumVector (uint64_t *, int N)
void GlobalSumVector (ComplexF *c, int N)
void GlobalSumVector (ComplexD *c, int N)
void GlobalXOR (uint32_t &)
void GlobalXOR (uint64_t &)
template<class obj>
void GlobalSumP2P (obj &o)
void CommsComplete (std::vector< MpiCommsRequest_t > &list)
void SendToRecvFromBegin (std::vector< MpiCommsRequest_t > &list, void *xmit, int dest, void *recv, int from, int bytes, int dir)
void SendToRecvFrom (void *xmit, int xmit_to_rank, void *recv, int recv_from_rank, int bytes)
int IsOffNode (int rank)
double StencilSendToRecvFrom (void *xmit, int xmit_to_rank, int do_xmit, void *recv, int recv_from_rank, int do_recv, int bytes, int dir)
double StencilSendToRecvFromPrepare (std::vector< CommsRequest_t > &list, void *xmit, int xmit_to_rank, int do_xmit, void *recv, int recv_from_rank, int do_recv, int xbytes, int rbytes, int dir)
void StencilSendToRecvFromPollDtoH (std::vector< CommsRequest_t > &list)
void StencilSendToRecvFromPollIRecv (std::vector< CommsRequest_t > &list)
double StencilSendToRecvFromBegin (std::vector< CommsRequest_t > &list, void *xmit, void *xmit_comp, int xmit_to_rank, int do_xmit, void *recv, void *recv_comp, int recv_from_rank, int do_recv, int xbytes, int rbytes, int dir)
void StencilSendToRecvFromComplete (std::vector< CommsRequest_t > &waitall, int i)
void StencilBarrier (void)
void Barrier (void)
void Broadcast (int root, void *data, int bytes)
template<class obj>
void Broadcast (int root, obj &data)
template<class T>
void AllToAll (int dim, std::vector< T > &in, std::vector< T > &out)
void AllToAll (int dim, void *in, void *out, uint64_t words, uint64_t bytes)
void AllToAll (void *in, void *out, uint64_t words, uint64_t bytes)
void SetCommunicator (Grid_MPI_Comm comm)
void ShmBarrier (void)
void SharedMemoryTest (void)
void * ShmBufferSelf (void)
void * ShmBuffer (int rank)
void * ShmBufferTranslate (int rank, void *local_p)
void * ShmBufferMalloc (size_t bytes)
void ShmBufferFreeAll (void)
int NodeCount (void)
int RankCount (void)

Static Public Member Functions

static void SetCommunicatorPolicy (CommunicatorPolicy_t policy)
static void Init (int *argc, char ***argv)
static int RankWorld (void)
static void BroadcastWorld (int root, void *data, int bytes)
static void BarrierWorld (void)
static void SetCores (int cr)
static void SetThreads (int thr)
static void SetMaxThreads (void)
static int GetHyperThreads (void)
static int GetCores (void)
static int GetThreads (void)
static int SumArraySize (void)
static void GetWork (int nwork, int me, int &mywork, int &myoff)
static void GetWork (int nwork, int me, int &mywork, int &myoff, int units)
static void GetWorkBarrier (int nwork, int &me, int &mywork, int &myoff)
static int ThreadBarrier (void)
template<class obj>
static void ThreadSum (std::vector< obj > &sum_array, obj &val, int me)
static void bcopy (const void *src, void *dst, size_t len)

Data Fields

int dummy
Coordinate _simd_layout
Coordinate _fdimensions
Coordinate _gdimensions
Coordinate _ldimensions
Coordinate _rdimensions
Coordinate _ostride
Coordinate _istride
int _osites
int _isites
int64_t _fsites
int64_t _gsites
Coordinate _slice_block
Coordinate _slice_stride
Coordinate _slice_nblock
Coordinate _lstart
Coordinate _lend
bool _isCheckerBoarded
int LocallyPeriodic
Coordinate _checker_dim_mask
int _checker_dim
int _Nprocessors
int _processor
unsigned long _ndimension
Coordinate _shm_processors
Coordinate _processors
Coordinate _processor_coor
Grid_MPI_Comm communicator
std::vector< Grid_MPI_Commcommunicator_halo

Static Public Attributes

static CommunicatorPolicy_t CommunicatorPolicy
static int nCommThreads
static Grid_MPI_Comm communicator_world
static int _threads
static int _hyperthreads
static int _cores

Protected Attributes

Grid_MPI_Comm ShmComm
int ShmRank
int ShmSize
std::vector< void * > ShmCommBufs
std::vector< int > ShmRanks

Private Member Functions

void InitFromMPICommunicator (const Coordinate &processors, Grid_MPI_Comm communicator_base)

Private Attributes

size_t heap_top
size_t heap_bytes
size_t heap_size

Static Private Attributes

static const int MAXLOG2RANKSPERNODE

Detailed Description

Definition at line 37 of file Cartesian_full.h.

Member Enumeration Documentation

◆ CommunicatorPolicy_t

Enumerator
CommunicatorPolicyConcurrent 
CommunicatorPolicySequential 

Definition at line 49 of file Communicator_base.h.

Constructor & Destructor Documentation

◆ GridCartesian() [1/3]

GridCartesian::GridCartesian ( const Coordinate & dimensions,
const Coordinate & simd_layout,
const Coordinate & processor_grid,
const GridCartesian & parent )
inline

Definition at line 67 of file Cartesian_full.h.

References dummy, GridBase::GridBase(), GridCartesian(), and Init().

Referenced by GridCartesian(), and GridCartesian().

◆ GridCartesian() [2/3]

GridCartesian::GridCartesian ( const Coordinate & dimensions,
const Coordinate & simd_layout,
const Coordinate & processor_grid,
const GridCartesian & parent,
int & split_rank )
inline

Definition at line 74 of file Cartesian_full.h.

References GridBase::GridBase(), GridCartesian(), and Init().

◆ GridCartesian() [3/3]

GridCartesian::GridCartesian ( const Coordinate & dimensions,
const Coordinate & simd_layout,
const Coordinate & processor_grid )
inline

Definition at line 84 of file Cartesian_full.h.

References GridBase::GridBase(), and Init().

◆ ~GridCartesian()

virtual GridCartesian::~GridCartesian ( )
virtualdefault

Member Function Documentation

◆ CheckerBoardFromOindexTable()

virtual int GridCartesian::CheckerBoardFromOindexTable ( int Oindex)
inlinevirtual

Implements GridBase.

Definition at line 42 of file Cartesian_full.h.

◆ CheckerBoardFromOindex()

virtual int GridCartesian::CheckerBoardFromOindex ( int Oindex)
inlinevirtual

Implements GridBase.

Definition at line 45 of file Cartesian_full.h.

◆ CheckerBoarded()

virtual int GridCartesian::CheckerBoarded ( int dim)
inlinevirtual

Implements GridBase.

Definition at line 49 of file Cartesian_full.h.

◆ CheckerBoard()

virtual int GridCartesian::CheckerBoard ( const Coordinate & site)
inlinevirtual

Implements GridBase.

Definition at line 52 of file Cartesian_full.h.

◆ CheckerBoardDestination()

virtual int GridCartesian::CheckerBoardDestination ( int cb,
int shift,
int dim )
inlinevirtual

Implements GridBase.

Definition at line 55 of file Cartesian_full.h.

◆ CheckerBoardShiftForCB()

virtual int GridCartesian::CheckerBoardShiftForCB ( int source_cb,
int dim,
int shift,
int ocb )
inlinevirtual

Implements GridBase.

Definition at line 58 of file Cartesian_full.h.

◆ CheckerBoardShift()

virtual int GridCartesian::CheckerBoardShift ( int source_cb,
int dim,
int shift,
int osite )
inlinevirtual

Implements GridBase.

Definition at line 61 of file Cartesian_full.h.

◆ Init() [1/2]

◆ oIndex()

virtual int GridBase::oIndex ( Coordinate & coor)
inlinevirtualinherited

◆ iIndex()

virtual int GridBase::iIndex ( Coordinate & lcoor)
inlinevirtualinherited

◆ oIndexReduced()

int GridBase::oIndexReduced ( Coordinate & ocoor)
inlineinherited

◆ oCoorFromOindex()

void GridBase::oCoorFromOindex ( Coordinate & coor,
int Oindex )
inlineinherited

◆ InOutCoorToLocalCoor()

void GridBase::InOutCoorToLocalCoor ( Coordinate & ocoor,
Coordinate & icoor,
Coordinate & lcoor )
inlineinherited

◆ iCoorFromIindex()

◆ PermuteDim()

int GridBase::PermuteDim ( int dimension)
inlineinherited

Definition at line 152 of file Cartesian_base.h.

References _simd_layout.

Referenced by Cshift_local(), and GeneralLocalStencil::GeneralLocalStencil().

◆ PermuteType()

◆ iSites()

int GridBase::iSites ( void ) const
inlineinherited

Definition at line 183 of file Cartesian_base.h.

References _isites.

Referenced by LatticeCoordinate().

◆ Nsimd()

◆ oSites()

int GridBase::oSites ( void ) const
inlineinherited

Definition at line 185 of file Cartesian_base.h.

References _osites.

Referenced by acceleratorPickCheckerboard(), acceleratorSetCheckerboard(), ag5xpbg5y_ssp(), ag5xpby_ssp(), A2Autils< FImpl >::AslashField(), axpbg5y_ssp(), axpby_norm_fast(), axpby_ssp(), axpby_ssp_pminus(), axpby_ssp_pplus(), BaryonUtils< FImpl >::BaryonGamma3pt(), basisRotate(), basisRotateJ(), batchBlockProject(), blockProject(), blockProjectFast(), blockSum(), blockZAXPY(), CoarsenedMatrix< Fobj, CComplex, nbasis >::CoarsenOperator(), GeneralCoarsenedMatrix< Fobj, CComplex, nbasis >::CoarsenOperator(), BaryonUtils< FImpl >::ContractBaryons(), BaryonUtils< FImpl >::ContractBaryonsMatrix(), A2Autils< FImpl >::ContractFourQuarkColourDiagonal(), A2Autils< FImpl >::ContractFourQuarkColourMix(), A2Autils< FImpl >::ContractWWVV(), StaggeredKernels< Impl >::DhopImproved(), CoarsenedMatrix< Fobj, CComplex, nbasis >::DhopInternal(), StaggeredKernels< Impl >::DhopNaive(), CoarsenedMatrix< Fobj, CComplex, nbasis >::DselfInternal(), G5C(), G5R5(), GeneralLocalStencil::GeneralLocalStencil(), ImprovedStaggeredFermion5D< Impl >::ImprovedStaggeredFermion5D(), innerProduct(), MultiRHSBlockCGLinalg< Field >::InnerProductMatrix(), innerProductNorm(), LatticeCoordinate(), LatticeMatrix< ncolour, group_name >::LieAlgebraProject(), CoarsenedMatrix< Fobj, CComplex, nbasis >::M(), MultiGeneralCoarsenedMatrix< Fobj, CComplex, nbasis >::M(), CayleyFermion5D< Impl >::M5D(), DomainWallEOFAFermion< Impl >::M5D(), MobiusEOFAFermion< Impl >::M5D(), DomainWallEOFAFermion< Impl >::M5Ddag(), MobiusEOFAFermion< Impl >::M5Ddag(), CoarsenedMatrix< Fobj, CComplex, nbasis >::MdagNonHermitian(), A2Autils< FImpl >::MesonField(), GeneralCoarsenedMatrix< Fobj, CComplex, nbasis >::Mult(), pickCheckerboard(), precisionChange(), precisionChangeFast(), precisionChangeOrig(), precisionChangeWorkspace::precisionChangeWorkspace(), ProjectSU3(), rankInnerProduct(), rankSum(), rankSumLarge(), WilsonLoops< PeriodicGimplR >::RectStaplePaddedAll(), Lattice< CoarseSiteVector >::reset(), setCheckerboard(), BaryonUtils< FImpl >::SigmaToNucleonEye(), BaryonUtils< FImpl >::SigmaToNucleonNonEye(), KappaSimilarityTransform< Matrix, Field >::sscale(), WilsonLoops< PeriodicGimplR >::StaplePaddedAll(), su2Extract(), su2Insert(), unvectorizeToLexOrdArray(), unvectorizeToRevLexOrdArray(), GaugeImplTypes< vComplex, Nc >::update_field(), vectorizeFromLexOrdArray(), vectorizeFromRevLexOrdArray(), Grid::whereWolf(), WilsonFermion< Impl >::WilsonFermion(), and BaryonUtils< FImpl >::XiToSigmaEye().

◆ lSites()

int GridBase::lSites ( void ) const
inlineinherited

◆ gSites()

◆ Nd()

◆ LocalStarts()

const Coordinate GridBase::LocalStarts ( void )
inlineinherited

Definition at line 190 of file Cartesian_base.h.

References _lstart.

Referenced by BinaryIO::ScidacChecksum().

◆ FullDimensions()

◆ GlobalDimensions()

◆ LocalDimensions()

◆ VirtualLocalDimensions()

const Coordinate & GridBase::VirtualLocalDimensions ( void )
inlineinherited

Definition at line 194 of file Cartesian_base.h.

References _ldimensions.

◆ show_decomposition()

◆ GlobalIndexToGlobalCoor()

void GridBase::GlobalIndexToGlobalCoor ( int64_t gidx,
Coordinate & gcoor )
inlineinherited

◆ LocalIndexToLocalCoor()

void GridBase::LocalIndexToLocalCoor ( int lidx,
Coordinate & lcoor )
inlineinherited

◆ GlobalCoorToGlobalIndex()

void GridBase::GlobalCoorToGlobalIndex ( const Coordinate & gcoor,
int64_t & gidx )
inlineinherited

Definition at line 226 of file Cartesian_base.h.

References _gdimensions, CartesianCommunicator::_ndimension, and mult().

◆ GlobalCoorToProcessorCoorLocalCoor()

void GridBase::GlobalCoorToProcessorCoorLocalCoor ( Coordinate & pcoor,
Coordinate & lcoor,
const Coordinate & gcoor )
inlineinherited

◆ GlobalCoorToRankIndex()

void GridBase::GlobalCoorToRankIndex ( int & rank,
int & o_idx,
int & i_idx,
const Coordinate & gcoor )
inlineinherited

◆ RankIndexToGlobalCoor()

void GridBase::RankIndexToGlobalCoor ( int rank,
int o_idx,
int i_idx,
Coordinate & gcoor )
inlineinherited

◆ RankIndexCbToFullGlobalCoor()

void GridBase::RankIndexCbToFullGlobalCoor ( int rank,
int o_idx,
int i_idx,
int cb,
Coordinate & fcoor )
inlineinherited

Definition at line 277 of file Cartesian_base.h.

References CheckerBoarded(), and RankIndexToGlobalCoor().

◆ ProcessorCoorLocalCoorToGlobalCoor()

void GridBase::ProcessorCoorLocalCoorToGlobalCoor ( Coordinate & Pcoor,
Coordinate & Lcoor,
Coordinate & gcoor )
inlineinherited

◆ SetCommunicatorPolicy()

void CartesianCommunicator::SetCommunicatorPolicy ( CommunicatorPolicy_t policy)
inlinestaticinherited

Definition at line 51 of file Communicator_base.h.

References CommunicatorPolicy.

◆ Init() [2/2]

◆ InitFromMPICommunicator()

void CartesianCommunicator::InitFromMPICommunicator ( const Coordinate & processors,
Grid_MPI_Comm communicator_base )
privateinherited

◆ ShiftedRanks()

void CartesianCommunicator::ShiftedRanks ( int dim,
int shift,
int & source,
int & dest )
inherited

◆ RankFromProcessorCoor()

int CartesianCommunicator::RankFromProcessorCoor ( Coordinate & coor)
inherited

Definition at line 86 of file Communicator_mpi3.cc.

References communicator.

Referenced by GridBase::GlobalCoorToRankIndex().

◆ ProcessorCoorFromRank()

void CartesianCommunicator::ProcessorCoorFromRank ( int rank,
Coordinate & coor )
inherited

◆ Dimensions()

int CartesianCommunicator::Dimensions ( void )
inherited

Definition at line 48 of file Communicator_base.cc.

References _ndimension.

Referenced by BinaryIO::IOobject().

◆ IsBoss()

int CartesianCommunicator::IsBoss ( void )
inherited

Definition at line 49 of file Communicator_base.cc.

References _processor.

Referenced by NerscIO::writeConfiguration(), and NerscIO::writeRNGState().

◆ BossRank()

int CartesianCommunicator::BossRank ( void )
inherited

Definition at line 50 of file Communicator_base.cc.

Referenced by pokeSite().

◆ ThisRank()

int CartesianCommunicator::ThisRank ( void )
inherited

Definition at line 51 of file Communicator_base.cc.

References _processor.

Referenced by BinaryIO::IOobject(), and pokeSite().

◆ ThisProcessorCoor()

const Coordinate & CartesianCommunicator::ThisProcessorCoor ( void )
inherited

Definition at line 52 of file Communicator_base.cc.

References _processor_coor.

Referenced by OpenQcdIO::createOpenQcdGrid(), and BinaryIO::IOobject().

◆ ShmGrid()

const Coordinate & CartesianCommunicator::ShmGrid ( void )
inlineinherited

Definition at line 103 of file Communicator_base.h.

References _shm_processors.

◆ ProcessorGrid()

const Coordinate & CartesianCommunicator::ProcessorGrid ( void )
inherited

Definition at line 53 of file Communicator_base.cc.

References _processors.

Referenced by OpenQcdIO::createOpenQcdGrid(), and BinaryIO::IOobject().

◆ ProcessorCount()

int CartesianCommunicator::ProcessorCount ( void )
inherited

Definition at line 54 of file Communicator_base.cc.

References _Nprocessors.

Referenced by BinaryIO::IOobject().

◆ RankWorld()

int CartesianCommunicator::RankWorld ( void )
staticinherited

Definition at line 838 of file Communicator_mpi3.cc.

References communicator_world.

Referenced by check_huge_pages(), and Grid_init().

◆ BroadcastWorld()

◆ BarrierWorld()

void CartesianCommunicator::BarrierWorld ( void )
staticinherited

Definition at line 843 of file Communicator_mpi3.cc.

References communicator_world, and FlightRecorder::StepLog().

Referenced by Grid_init().

◆ GlobalMax() [1/2]

void CartesianCommunicator::GlobalMax ( RealD & d)
inherited

Definition at line 314 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ GlobalMax() [2/2]

void CartesianCommunicator::GlobalMax ( RealF & f)
inherited

Definition at line 308 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ GlobalSum() [1/7]

void CartesianCommunicator::GlobalSum ( RealF & f)
inherited

◆ GlobalSum() [2/7]

void CartesianCommunicator::GlobalSum ( RealD & d)
inherited

Definition at line 266 of file Communicator_mpi3.cc.

References GlobalSumP2P(), and FlightRecorder::StepLog().

◆ GlobalSum() [3/7]

void CartesianCommunicator::GlobalSum ( uint32_t & u)
inherited

Definition at line 284 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ GlobalSum() [4/7]

void CartesianCommunicator::GlobalSum ( uint64_t & u)
inherited

Definition at line 289 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ GlobalSum() [5/7]

void CartesianCommunicator::GlobalSum ( ComplexF & c)
inherited

Definition at line 61 of file Communicator_base.cc.

References GlobalSumP2P().

◆ GlobalSum() [6/7]

void CartesianCommunicator::GlobalSum ( ComplexD & c)
inherited

Definition at line 65 of file Communicator_base.cc.

References GlobalSumP2P().

◆ GlobalSum() [7/7]

template<class obj>
void CartesianCommunicator::GlobalSum ( obj & o)
inlineinherited

Definition at line 162 of file Communicator_base.h.

References GlobalSumVector().

◆ GlobalSumVector() [1/5]

◆ GlobalSumVector() [2/5]

void CartesianCommunicator::GlobalSumVector ( RealD * d,
int N )
inherited

Definition at line 326 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ GlobalSumVector() [3/5]

void CartesianCommunicator::GlobalSumVector ( uint64_t * u,
int N )
inherited

Definition at line 294 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ GlobalSumVector() [4/5]

void CartesianCommunicator::GlobalSumVector ( ComplexF * c,
int N )
inherited

Definition at line 79 of file Communicator_base.cc.

References GlobalSumVector().

◆ GlobalSumVector() [5/5]

void CartesianCommunicator::GlobalSumVector ( ComplexD * c,
int N )
inherited

Definition at line 83 of file Communicator_base.cc.

References GlobalSumVector().

◆ GlobalXOR() [1/2]

void CartesianCommunicator::GlobalXOR ( uint32_t & u)
inherited

Definition at line 299 of file Communicator_mpi3.cc.

References communicator.

Referenced by BinaryIO::IOobject().

◆ GlobalXOR() [2/2]

void CartesianCommunicator::GlobalXOR ( uint64_t & u)
inherited

Definition at line 303 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ GlobalSumP2P()

template<class obj>
void CartesianCommunicator::GlobalSumP2P ( obj & o)
inlineinherited

◆ CommsComplete()

void CartesianCommunicator::CommsComplete ( std::vector< MpiCommsRequest_t > & list)
inherited

Definition at line 358 of file Communicator_mpi3.cc.

Referenced by PaddedCell::Face_exchange(), and GlobalSumP2P().

◆ SendToRecvFromBegin()

void CartesianCommunicator::SendToRecvFromBegin ( std::vector< MpiCommsRequest_t > & list,
void * xmit,
int dest,
void * recv,
int from,
int bytes,
int dir )
inherited

Definition at line 333 of file Communicator_mpi3.cc.

References _processor, and communicator.

Referenced by PaddedCell::Face_exchange(), and GlobalSumP2P().

◆ SendToRecvFrom()

void CartesianCommunicator::SendToRecvFrom ( void * xmit,
int xmit_to_rank,
void * recv,
int recv_from_rank,
int bytes )
inherited

Definition at line 371 of file Communicator_mpi3.cc.

References _processor, acceleratorIsCommunicable(), and communicator.

Referenced by Cshift_comms(), and Cshift_comms_simd().

◆ IsOffNode()

int CartesianCommunicator::IsOffNode ( int rank)
inherited

Definition at line 407 of file Communicator_mpi3.cc.

References SharedMemory::ShmRanks.

◆ StencilSendToRecvFrom()

double CartesianCommunicator::StencilSendToRecvFrom ( void * xmit,
int xmit_to_rank,
int do_xmit,
void * recv,
int recv_from_rank,
int do_recv,
int bytes,
int dir )
inherited

◆ StencilSendToRecvFromPrepare()

double CartesianCommunicator::StencilSendToRecvFromPrepare ( std::vector< CommsRequest_t > & list,
void * xmit,
int xmit_to_rank,
int do_xmit,
void * recv,
int recv_from_rank,
int do_recv,
int xbytes,
int rbytes,
int dir )
inherited

Definition at line 417 of file Communicator_mpi3.cc.

Referenced by StencilSendToRecvFrom().

◆ StencilSendToRecvFromPollDtoH()

void CartesianCommunicator::StencilSendToRecvFromPollDtoH ( std::vector< CommsRequest_t > & list)
inherited

Definition at line 416 of file Communicator_mpi3.cc.

◆ StencilSendToRecvFromPollIRecv()

void CartesianCommunicator::StencilSendToRecvFromPollIRecv ( std::vector< CommsRequest_t > & list)
inherited

Definition at line 415 of file Communicator_mpi3.cc.

◆ StencilSendToRecvFromBegin()

double CartesianCommunicator::StencilSendToRecvFromBegin ( std::vector< CommsRequest_t > & list,
void * xmit,
void * xmit_comp,
int xmit_to_rank,
int do_xmit,
void * recv,
void * recv_comp,
int recv_from_rank,
int do_recv,
int xbytes,
int rbytes,
int dir )
inherited

◆ StencilSendToRecvFromComplete()

void CartesianCommunicator::StencilSendToRecvFromComplete ( std::vector< CommsRequest_t > & waitall,
int i )
inherited

Definition at line 487 of file Communicator_mpi3.cc.

References acceleratorCopySynchronise(), and StencilBarrier().

Referenced by StencilSendToRecvFrom().

◆ StencilBarrier()

void CartesianCommunicator::StencilBarrier ( void )
inherited

◆ Barrier()

◆ Broadcast() [1/2]

void CartesianCommunicator::Broadcast ( int root,
void * data,
int bytes )
inherited

◆ Broadcast() [2/2]

template<class obj>
void CartesianCommunicator::Broadcast ( int root,
obj & data )
inlineinherited

Definition at line 242 of file Communicator_base.h.

References Broadcast().

◆ AllToAll() [1/3]

template<class T>
void CartesianCommunicator::AllToAll ( int dim,
std::vector< T > & in,
std::vector< T > & out )
inlineinherited

Definition at line 228 of file Communicator_base.h.

References _ndimension, _processors, and AllToAll().

Referenced by AllToAll(), AllToAll(), Grid_split(), and Grid_unsplit().

◆ AllToAll() [2/3]

void CartesianCommunicator::AllToAll ( int dim,
void * in,
void * out,
uint64_t words,
uint64_t bytes )
inherited

Definition at line 859 of file Communicator_mpi3.cc.

References _ndimension, _processors, AllToAll(), and CartesianCommunicator().

◆ AllToAll() [3/3]

void CartesianCommunicator::AllToAll ( void * in,
void * out,
uint64_t words,
uint64_t bytes )
inherited

Definition at line 871 of file Communicator_mpi3.cc.

References communicator, and FlightRecorder::StepLog().

◆ SetCommunicator()

◆ ShmBarrier()

void SharedMemory::ShmBarrier ( void )
inherited

Definition at line 966 of file SharedMemoryMPI.cc.

References ShmComm.

Referenced by SharedMemoryTest().

◆ SharedMemoryTest()

void SharedMemory::SharedMemoryTest ( void )
inherited

◆ ShmBufferSelf()

void * SharedMemory::ShmBufferSelf ( void )
inherited

Definition at line 112 of file SharedMemory.cc.

References ShmCommBufs, and ShmRank.

Referenced by ShmBufferFreeAll().

◆ ShmBuffer()

void * SharedMemory::ShmBuffer ( int rank)
inherited

Definition at line 997 of file SharedMemoryMPI.cc.

References ShmCommBufs, and ShmRanks.

◆ ShmBufferTranslate()

void * SharedMemory::ShmBufferTranslate ( int rank,
void * local_p )
inherited

Definition at line 1006 of file SharedMemoryMPI.cc.

References ShmCommBufs, ShmRank, and ShmRanks.

Referenced by CartesianCommunicator::StencilSendToRecvFromBegin().

◆ ShmBufferMalloc()

void * SharedMemory::ShmBufferMalloc ( size_t bytes)
inherited

Definition at line 92 of file SharedMemory.cc.

References heap_bytes, heap_size, and heap_top.

◆ ShmBufferFreeAll()

void SharedMemory::ShmBufferFreeAll ( void )
inherited

Definition at line 108 of file SharedMemory.cc.

References heap_bytes, heap_top, and ShmBufferSelf().

Referenced by SetCommunicator().

◆ NodeCount()

int SharedMemory::NodeCount ( void )
inlineinherited

Definition at line 202 of file SharedMemory.h.

References GlobalSharedMemory::WorldNodes.

◆ RankCount()

int SharedMemory::RankCount ( void )
inlineinherited

Definition at line 203 of file SharedMemory.h.

References GlobalSharedMemory::WorldSize.

◆ SetCores()

void GridThread::SetCores ( int cr)
inlinestaticinherited

Definition at line 41 of file ThreadReduction.h.

References _cores.

Referenced by GridParseLayout().

◆ SetThreads()

void GridThread::SetThreads ( int thr)
inlinestaticinherited

Definition at line 48 of file ThreadReduction.h.

References _threads, and MIN.

Referenced by GridParseLayout().

◆ SetMaxThreads()

void GridThread::SetMaxThreads ( void )
inlinestaticinherited

Definition at line 56 of file ThreadReduction.h.

References _threads.

Referenced by GridParseLayout().

◆ GetHyperThreads()

int GridThread::GetHyperThreads ( void )
inlinestaticinherited

Definition at line 64 of file ThreadReduction.h.

References _cores, and _threads.

◆ GetCores()

int GridThread::GetCores ( void )
inlinestaticinherited

Definition at line 65 of file ThreadReduction.h.

References _cores.

◆ GetThreads()

int GridThread::GetThreads ( void )
inlinestaticinherited

Definition at line 66 of file ThreadReduction.h.

References _threads.

Referenced by Grid_init(), GridLogLayout(), sum_cpu(), and sumD_cpu().

◆ SumArraySize()

int GridThread::SumArraySize ( void )
inlinestaticinherited

Definition at line 67 of file ThreadReduction.h.

References _threads.

◆ GetWork() [1/2]

void GridThread::GetWork ( int nwork,
int me,
int & mywork,
int & myoff )
inlinestaticinherited

Definition at line 69 of file ThreadReduction.h.

References _threads, and GetWork().

Referenced by GetWork(), GetWorkBarrier(), sum_cpu(), and sumD_cpu().

◆ GetWork() [2/2]

void GridThread::GetWork ( int nwork,
int me,
int & mywork,
int & myoff,
int units )
inlinestaticinherited

Definition at line 72 of file ThreadReduction.h.

◆ GetWorkBarrier()

void GridThread::GetWorkBarrier ( int nwork,
int & me,
int & mywork,
int & myoff )
inlinestaticinherited

Definition at line 86 of file ThreadReduction.h.

References GetWork(), and ThreadBarrier().

Referenced by bcopy().

◆ ThreadBarrier()

int GridThread::ThreadBarrier ( void )
inlinestaticinherited

Definition at line 91 of file ThreadReduction.h.

Referenced by GetWorkBarrier(), and ThreadSum().

◆ ThreadSum()

template<class obj>
void GridThread::ThreadSum ( std::vector< obj > & sum_array,
obj & val,
int me )
inlinestaticinherited

Definition at line 100 of file ThreadReduction.h.

References _threads, and ThreadBarrier().

◆ bcopy()

void GridThread::bcopy ( const void * src,
void * dst,
size_t len )
inlinestaticinherited

Definition at line 108 of file ThreadReduction.h.

References bcopy(), and GetWorkBarrier().

Referenced by bcopy().

Field Documentation

◆ dummy

int GridCartesian::dummy

Definition at line 40 of file Cartesian_full.h.

Referenced by GridCartesian().

◆ _simd_layout

◆ _fdimensions

◆ _gdimensions

◆ _ldimensions

◆ _rdimensions

◆ _ostride

◆ _istride

◆ _osites

int GridBase::_osites
inherited

◆ _isites

int GridBase::_isites
inherited

◆ _fsites

int64_t GridBase::_fsites
inherited

Definition at line 73 of file Cartesian_base.h.

Referenced by GridCartesian::Init(), and GridRedBlackCartesian::Init().

◆ _gsites

int64_t GridBase::_gsites
inherited

Definition at line 74 of file Cartesian_base.h.

Referenced by GridCartesian::Init(), and GridRedBlackCartesian::Init().

◆ _slice_block

◆ _slice_stride

◆ _slice_nblock

◆ _lstart

Coordinate GridBase::_lstart
inherited

Definition at line 79 of file Cartesian_base.h.

Referenced by GridCartesian::Init(), GridRedBlackCartesian::Init(), and LocalStarts().

◆ _lend

Coordinate GridBase::_lend
inherited

Definition at line 80 of file Cartesian_base.h.

Referenced by GridCartesian::Init(), and GridRedBlackCartesian::Init().

◆ _isCheckerBoarded

◆ LocallyPeriodic

int GridBase::LocallyPeriodic
inherited

Definition at line 83 of file Cartesian_base.h.

Referenced by GridBase(), GridBase(), and GridBase().

◆ _checker_dim_mask

◆ _checker_dim

◆ CommunicatorPolicy

CartesianCommunicator::CommunicatorPolicy_t CartesianCommunicator::CommunicatorPolicy
staticinherited

Definition at line 50 of file Communicator_base.h.

Referenced by SetCommunicatorPolicy().

◆ nCommThreads

int CartesianCommunicator::nCommThreads
staticinherited

Definition at line 52 of file Communicator_base.h.

Referenced by Grid_init(), and Init().

◆ _Nprocessors

◆ _processor

◆ _ndimension

unsigned long CartesianCommunicator::_ndimension
inherited

Definition at line 59 of file Communicator_base.h.

Referenced by acceleratorPickCheckerboard(), acceleratorSetCheckerboard(), AllToAll(), AllToAll(), A2Autils< FImpl >::AslashField(), MultiGeneralCoarsenedMatrix< Fobj, CComplex, nbasis >::BLAStoGrid(), blockPick(), blockSum(), blockZAXPY(), CartesianCommunicator(), GridRedBlackCartesian::CheckerBoard(), Dimensions(), ExtractSlice(), ExtractSliceFast(), FourierAcceleratedGaugeFixer< Gimpl >::FourierAccelSteepestDescentStep(), GridBase::GlobalCoorToGlobalIndex(), GridBase::GlobalCoorToProcessorCoorLocalCoor(), GlobalSumP2P(), Grid_split(), Grid_unsplit(), GridMetaData(), MultiGeneralCoarsenedMatrix< Fobj, CComplex, nbasis >::GridtoBLAS(), GridBase::iIndex(), GridRedBlackCartesian::iIndex(), ImprovedStaggeredFermion5D< Impl >::ImprovedStaggeredFermion5D(), GridCartesian::Init(), GridRedBlackCartesian::Init(), InitFromMPICommunicator(), GridBase::InOutCoorToLocalCoor(), InsertSlice(), InsertSliceFast(), InsertSliceLocal(), localConvert(), localCopyRegion(), SpaceTimeGrid::makeFiveDimDWFGrid(), SpaceTimeGrid::makeFiveDimDWFRedBlackGrid(), SpaceTimeGrid::makeFiveDimGrid(), SpaceTimeGrid::makeFiveDimRedBlackGrid(), makeSubSliceGrid(), ScalarImplTypes< vReal >::MomentumSpacePropagator(), GridBase::Nd(), GridBase::oIndex(), GridRedBlackCartesian::oIndex(), GridBase::oIndexReduced(), GridBase::PermuteType(), ProcessorCoorFromRank(), GridBase::ProcessorCoorLocalCoorToGlobalCoor(), GridBase::RankIndexToGlobalCoor(), NerscIO::readHeader(), OpenQcdIO::readHeader(), Replicate(), RNGfillable(), RNGfillable_general(), BinaryIO::ScidacChecksum(), GridBase::show_decomposition(), sliceInnerProductVector(), sliceSum(), subdivides(), and WilsonFermion5D< Impl >::WilsonFermion5D().

◆ _shm_processors

Coordinate CartesianCommunicator::_shm_processors
inherited

Definition at line 60 of file Communicator_base.h.

Referenced by CartesianCommunicator(), CartesianCommunicator(), and ShmGrid().

◆ _processors

◆ _processor_coor

◆ communicator_world

Grid_MPI_Comm CartesianCommunicator::communicator_world
staticinherited

◆ communicator

◆ communicator_halo

std::vector<Grid_MPI_Comm> CartesianCommunicator::communicator_halo
inherited

◆ MAXLOG2RANKSPERNODE

const int SharedMemory::MAXLOG2RANKSPERNODE
staticprivateinherited

Definition at line 151 of file SharedMemory.h.

◆ heap_top

size_t SharedMemory::heap_top
privateinherited

Definition at line 153 of file SharedMemory.h.

Referenced by ShmBufferFreeAll(), and ShmBufferMalloc().

◆ heap_bytes

size_t SharedMemory::heap_bytes
privateinherited

Definition at line 154 of file SharedMemory.h.

Referenced by ShmBufferFreeAll(), and ShmBufferMalloc().

◆ heap_size

size_t SharedMemory::heap_size
privateinherited

Definition at line 155 of file SharedMemory.h.

Referenced by SetCommunicator(), and ShmBufferMalloc().

◆ ShmComm

Grid_MPI_Comm SharedMemory::ShmComm
protectedinherited

◆ ShmRank

int SharedMemory::ShmRank
protectedinherited

◆ ShmSize

int SharedMemory::ShmSize
protectedinherited

Definition at line 168 of file SharedMemory.h.

Referenced by SetCommunicator(), and SharedMemoryTest().

◆ ShmCommBufs

std::vector<void *> SharedMemory::ShmCommBufs
protectedinherited

◆ ShmRanks

std::vector<int> SharedMemory::ShmRanks
protectedinherited

◆ _threads

int GridThread::_threads
staticinherited

◆ _hyperthreads

int GridThread::_hyperthreads
staticinherited

Definition at line 38 of file ThreadReduction.h.

◆ _cores

int GridThread::_cores
staticinherited

Definition at line 39 of file ThreadReduction.h.

Referenced by GetCores(), GetHyperThreads(), and SetCores().


The documentation for this class was generated from the following file: