Namespaces | |
| namespace | cps::MPISCU |
| Namespace for the MPI emulations of the SCU. | |
| namespace | cps::QMPSCU |
| Gets the direction used internally by the comms layer. | |
Modules | |
| group | Collective communications routines |
| group | Code specific to the MPI interface |
| group | Fairly high level send/receive routines |
Classes | |
| class | cps::MPIRequestManager |
| This handles the MPI requests. More... | |
| class | cps::SCUDirArg |
| A class describing the data to be communicated,. More... | |
Functions | |
| int | cps::TorusT () |
| int | cps::TorusX () |
| 1 if the dir is a torus, 0 if it is not | |
| int | cps::TorusY () |
| 1 if the dir is a torus, 0 if it is not | |
| int | cps::TorusZ () |
| 1 if the dir is a torus, 0 if it is not | |
| int | cps::UniqueID () |
| Gets an ID which is unique for each node. | |
| int | cps::CoorT () |
| Gets the grid coordinate of this node in the T direction. | |
| int | cps::CoorX () |
| Gets the grid coordinate of this node in the X direction. | |
| int | cps::CoorY () |
| Gets the grid coordinate of this node in the Y direction. | |
| int | cps::CoorZ () |
| Gets the grid coordinate of this node in the Z direction. | |
| int | cps::CoorS () |
| Gets the grid coordinate of this node in the S direction. | |
| int | cps::CoorW () |
| Gets the grid coordinate of this node in the S direction. | |
| int | cps::SizeT () |
| Gets the size of the grid in the T direction. | |
| int | cps::SizeX () |
| Gets the size of the grid in the X direction. | |
| int | cps::SizeY () |
| Gets the size of the grid in the Y direction. | |
| int | cps::SizeZ () |
| Gets the size of the grid in the Z direction. | |
| int | cps::SizeS () |
| Gets the size of the grid in the S direction. | |
| int | cps::SizeW () |
| Gets the size of the grid in the S direction. | |
| int | cps::NumNodes () |
| Returns the total number of nodes in the processor grid. | |
| unsigned int | cps::Seed () |
| Gets a RNG seed. | |
| unsigned int | cps::SeedS () |
| Gets a RNG seed. | |
| unsigned int | cps::SeedT () |
| Gets a RNG seed. | |
| unsigned int | cps::SeedST () |
| Gets a RNG seed. | |
| unsigned int | cps::sync () |
| A barrier function. | |
| int | cps::SCURemap (SCUDir dir) |
| Gets the direction used internally by the comms layer. | |
| void | cps::SCUTrans (SCUDirArg *arg) |
| Generic single communication. | |
| void | cps::SCUTrans (SCUDirArg **arg, int n) |
| Generic multiple communication. | |
| void | cps::SCUTrans (SCUDirArg *arg, unsigned int *offset, int n) |
| Does a number of similar communications. | |
| void | cps::SCUSetDMA (SCUDirArg *arg) |
| Initialise a data transfer. | |
| void | cps::SCUSetDMA (SCUDirArg **arg, int n) |
| Initialise multiple data transfers. | |
| void | cps::SCUTransAddr (SCUDirArg *arg) |
| Performs a previously set-up data transfer. | |
| void | cps::SCUTransAddr (SCUDirArg **arg, int n) |
| Performs multiple previously set-up data transfers. | |
| void | cps::SCUTransComplete (void) |
| A communications barrier function,. | |
| void | cps::glb_sum_multi_dir (Float *float_p, int dir, int len) |
| void | cps::glb_sum_internal (Float *float_p, int dir, int len) |
| void | cps::glb_max (Float *float_p) |
| Finds the maximum floating point number over all nodes. | |
| void | cps::glb_min (Float *float_p) |
| Finds the minimum floating point number over all nodes. | |
| void | cps::glb_sum (Float *float_p) |
| Sums a floating point number over all nodes in a 4-dimensinal grid. | |
| void | cps::glb_sum_dir (Float *float_p, int dir) |
| Sums a floating point number over all nodes along a single direction. | |
| void | cps::glb_sum_five (Float *float_p) |
| Sums a floating point number over all nodes in a 5-dimensinal grid. | |
| void | cps::glb_sum_matrix_dir (Matrix *float_p, int dir) |
| Sums a Matrix over all nodes along a single direction. | |
| void | cps::slice_sum (Float *float_p, int blcklength, int dir) |
| Sums a vector of floating point numbers over all nodes in a hyperplane. | |
| void | cps::getPlusData (IFloat *rcv_buf, IFloat *send_buf, int len, int mu) |
| Sends data in negative direction/receives data from positive direction. | |
| void | cps::getMinusData (IFloat *rcv_buf, IFloat *send_buf, int len, int mu) |
| Sends data in positive direction/receives data from negative direction. | |
| void | cps::getMinus2Data (IFloat *rcv_buf, IFloat *send_buf, int len, int mu, int nu) |
| Sends data in positive direction/receives data from negative direction. | |
| void | cps::getMinus3Data (IFloat *rcv_buf, IFloat *send_buf, int len, int dir) |
| Sends data in positive direction/receives data from negative direction. | |
| void | cps::glb_sum_multi_dir (LatData &dat, const int dir) |
Variables | |
| const int | cps::MAX_LENGTH = 4096 |
|
|
Gets the grid coordinate of this node in the S direction.
Definition at line 61 of file sysfunc_bgl.h. Referenced by cps::Gsum64Ext::Init(), and cps::test_checksum(). |
|
|
Gets the grid coordinate of this node in the T direction.
Definition at line 53 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(), AsqD::InvCg(), AsqD::MdagM(), cps::AlgPbp::run(), cps::AlgDens::run(), and cps::test_checksum(). |
|
|
Gets the grid coordinate of this node in the S direction.
Definition at line 62 of file sysfunc_bgl.h. Referenced by cps::Gsum64Ext::Init(). |
|
|
Gets the grid coordinate of this node in the X direction.
Definition at line 54 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(), AsqD::InvCg(), AsqD::MdagM(), cps::AlgPbp::run(), cps::AlgDens::run(), and cps::test_checksum(). |
|
|
Gets the grid coordinate of this node in the Y direction.
Definition at line 55 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(), AsqD::InvCg(), AsqD::MdagM(), cps::AlgPbp::run(), cps::AlgDens::run(), and cps::test_checksum(). |
|
|
Gets the grid coordinate of this node in the Z direction.
Definition at line 56 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(), AsqD::InvCg(), AsqD::MdagM(), cps::AlgPbp::run(), cps::AlgDens::run(), and cps::test_checksum(). |
|
||||||||||||||||||||||||
|
Sends data in positive direction/receives data from negative direction. Gets a contiguous block of floating point data from the second-nearest neighbouring node in a negative direction, i.e. the node in the (-mu, -nu) position relative to this one. This function also handles the case where there is no such node in either of these directions, i.e. the lattice is local in that direction.
Definition at line 134 of file get_data.C. References cps::SCUTrans(), cps::SCUTransComplete(), cps::sfree(), and cps::smalloc(). |
|
||||||||||||||||||||
|
Sends data in positive direction/receives data from negative direction. Gets a contiguous block of floating point data from the node in a relative position to this one of (-mu, -nu, -rho) where mu, nu and rho are any of the directions {x, y, z, t}. This function also handles the case where there is no such node in any of these directions, i.e. the lattice is local in that direction.
Definition at line 176 of file get_data.C. References cps::SCUTrans(), cps::SCUTransComplete(), cps::sfree(), and cps::smalloc(). |
|
||||||||||||||||||||
|
||||||||||||||||||||
|
Sends data in negative direction/receives data from positive direction. Gets a contiguous block of floating point data from the neighbouring node in a positive direction. This function also handles the case where there is no such node, i.e. the lattice is local in that direction.
Definition at line 53 of file get_data.C. References cps::SCUTrans(), and cps::SCUTransComplete(). Referenced by cps::DiracOpAsqtad::Dslash(), cps::FwilsonTm::EvolveMomFforce(), cps::Fwilson::EvolveMomFforce(), cps::FdwfBase::EvolveMomFforce(), cps::Fclover::EvolveMomFforce(), cps::HyperPlane::G(), cps::FermionVectorTp::GaussianSmearVector(), cps::FermionVector::GetFermion(), cps::Lattice::GetLink(), cps::DiracOpClover::GetLink(), cps::WspectFuzzing::GetLink(), cps::Lattice::GetLinkOld(), cps::QPropW::GetMatrix(), cps::DTerms::GetTerm(), cps::HyperPlane::HyperPlane_Sum(), cps::Nuc3ptCons::InsertOp(), cps::QPropW::MeasConAxialOld(), cps::Lattice::PathOrdProd(), cps::AlgHQPotential::run(), cps::QPropWRand::ShiftPropBackward(), and cps::QPropW::ShiftPropBackward(). |
|
|
Finds the maximum floating point number over all nodes. The number pointed to by float_p on all nodes is compared.
Definition at line 61 of file glb_min_max.C. References max, cps::SCUTrans(), and cps::SCUTransComplete(). Referenced by cps::AlgActionQuotient::evolve(), cps::FwilsonTm::EvolveMomFforce(), cps::Fwilson::EvolveMomFforce(), cps::Fstag::EvolveMomFforce(), cps::FdwfBase::EvolveMomFforce(), cps::Fclover::EvolveMomFforce(), cps::Gwilson::EvolveMomGforce(), cps::GtadpoleRect::EvolveMomGforce(), cps::GpowerRect::EvolveMomGforce(), cps::GpowerPlaq::EvolveMomGforce(), cps::GimprRect::EvolveMomGforce(), cps::GimprOLSym::EvolveMomGforce(), cps::Fwilson::RHMC_EvolveMomFforce(), cps::Fstag::RHMC_EvolveMomFforce(), cps::Fp4::RHMC_EvolveMomFforce(), cps::FdwfBase::RHMC_EvolveMomFforce(), cps::Fasqtad::RHMC_EvolveMomFforce(), cps::AlgRect::run(), and cps::AlgPlaq::run(). |
|
|
Finds the minimum floating point number over all nodes. The number pointed to by float_p on all nodes is compared.
Definition at line 98 of file glb_min_max.C. References min, cps::SCUTrans(), and cps::SCUTransComplete(). Referenced by cps::QioControl::globalMinInt(), cps::AlgRect::run(), and cps::AlgPlaq::run(). |
|
|
Sums a floating point number over all nodes in a 4-dimensinal grid.
Definition at line 54 of file glb_sum.C. References COMMS_DATASIZE, cps::SCUTrans(), and cps::SCUTransComplete(). Referenced by cps::Lattice::AveReTrPlaqNoXi(), cps::Lattice::AveReTrPlaqXi(), cps::Lattice::AveReTrRectNoXi(), cps::Lattice::AveReTrRectXi1(), cps::Lattice::AveReTrRectXi2(), cps::Vector::CompDotProductGlbSum4D(), cps::DiracOp::DiracOpGlbSum(), cps::WspectAxialCurrent::doSum(), cps::WspectMesons::Everything(), cps::AlgActionQuotient::evolve(), cps::FwilsonTm::EvolveMomFforce(), cps::Fwilson::EvolveMomFforce(), cps::Fstag::EvolveMomFforce(), cps::FdwfBase::EvolveMomFforce(), cps::Fclover::EvolveMomFforce(), cps::Gwilson::EvolveMomGforce(), cps::GtadpoleRect::EvolveMomGforce(), cps::GpowerRect::EvolveMomGforce(), cps::GpowerPlaq::EvolveMomGforce(), cps::GimprRect::EvolveMomGforce(), cps::GimprOLSym::EvolveMomGforce(), cps::FdwfBase::FeigSolv(), cps::WspectExtendedMesons::finish(), cps::WspectExtendedMesonsBE::finish(), cps::Lattice::FixGauge(), cps::Lattice::MetropolisAccept(), cps::Vector::NormSqGlbSum4D(), cps::FermionVector::print(), cps::FermionVector::printWaveFunc(), cps::Vector::ReDotProductGlbSum4D(), cps::AlgActionQuotient::reweight(), cps::Fwilson::RHMC_EvolveMomFforce(), cps::Fstag::RHMC_EvolveMomFforce(), cps::Fp4::RHMC_EvolveMomFforce(), cps::FdwfBase::RHMC_EvolveMomFforce(), cps::Fasqtad::RHMC_EvolveMomFforce(), cps::AlgTcharge::run(), cps::AlgRect::run(), cps::AlgPot2::run(), cps::AlgPot::run(), cps::AlgPlaq::run(), cps::AlgHmc::run(), cps::AlgHQPotential::run(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), cps::AlgHmcPhi::run(), cps::AlgEqState::run(), cps::Vector::SliceArraySum(), cps::Vector::SliceArraySumFive(), cps::staggered_local_pion(), cps::GpowerRect::SumPowerPlaq(), cps::GpowerPlaq::SumPowerPlaq(), cps::GpowerRect::SumPowerRect(), cps::Lattice::SumReTrCube(), cps::Lattice::SumReTrPlaq(), cps::Lattice::SumReTrRect(), and cps::WriteLatticeParallel::write(). |
|
||||||||||||
|
Sums a floating point number over all nodes along a single direction.
Definition at line 58 of file glb_sum_dir.C. References cps::SCUTrans(), and cps::SCUTransComplete(). Referenced by cps::FdwfBase::BhamiltonNode(), cps::FdwfBase::EvolveMomFforce(), cps::FdwfBase::Ffive2four(), cps::FdwfBase::FhamiltonNode(), cps::Nuc3ptCons::InsertOp(), cps::QPropW::RestoreOrgProp(), cps::QPropW::RestoreQPropLs(), and cps::QPropW::SwapQPropLs(). |
|
|
Sums a floating point number over all nodes in a 5-dimensinal grid. This routine need only be used by domain-wall fermion code where the 5th dimension is parallelised.
Definition at line 59 of file glb_sum_five.C. References cps::SCUTrans(), and cps::SCUTransComplete(). Referenced by cps::Vector::CompDotProductGlbSum(), cps::DiracOpDwf::DiracOpGlbSum(), cps::QioControl::globalSumFloat(), cps::Lattice::GsoCheck(), cps::LatRanGen::Lrand(), cps::Vector::NormSqGlbSum(), cps::Lattice::RandGaussVector(), cps::Vector::ReDotProductGlbSum(), cps::QPropW::Run(), cps::Lattice::SoCheck(), and cps::LatRngWrite::write(). |
|
||||||||||||||||
|
Definition at line 56 of file glb_sum_internal.C. References max, and cps::MPISCU::printf(). Referenced by cps::glb_sum_multi_dir(). |
|
||||||||||||
|
Sums a Matrix over all nodes along a single direction.
Definition at line 59 of file glb_sum_matrix_dir.C. References cps::SCUTrans(), and cps::SCUTransComplete(). |
|
||||||||||||
|
Definition at line 52 of file glb_sum_multi_dir.C. References cps::glb_sum_multi_dir(). |
|
||||||||||||||||
|
Definition at line 59 of file glb_sum_multi_dir.C. References cps::SCUTrans(), and cps::SCUTransComplete(). Referenced by cps::glb_sum_multi_dir(). |
|
|
Returns the total number of nodes in the processor grid.
Definition at line 68 of file sysfunc_noarch.h. |
|
|
Gets the direction used internally by the comms layer.
|
|
||||||||||||
|
Initialise multiple data transfers. The block length, stride and number of blocks involved in a number of data transfer are given to to the underlying communications layer, but no transfers are done.
Definition at line 286 of file sysfunc.C. Referenced by cps::SCUSetDMA(). |
|
|
Initialise a data transfer. The block length, stride and number of blocks involved in the data transfer are given to to the underlying communications layer, but no transfers are done.
Definition at line 275 of file sysfunc.C. References cps::SCUSetDMA(). |
|
||||||||||||||||
|
Does a number of similar communications. This function does a number of transfers in the same direction of data with the same block length, stride and number of blocks but with different addresses. These addresses are specified as offsets to the base address.
Definition at line 256 of file sysfunc.C. References cps::MPISCU::Trans(). Referenced by cps::getMinus2Data(), cps::getMinus3Data(), cps::getMinusData(), cps::getPlusData(), cps::glb_max(), cps::glb_min(), cps::glb_sum(), cps::glb_sum_dir(), cps::glb_sum_five(), cps::glb_sum_matrix_dir(), cps::glb_sum_multi_dir(), cps::qloadsave_pump_data(), cps::SCUTrans(), and cps::slice_sum(). |
|
||||||||||||
|
Generic multiple communication. Performs the multiple communications specified in arg.
Definition at line 233 of file sysfunc.C. References cps::MPISCU::Trans(). |
|
|
Generic single communication. Performs the communication specified in arg.
Definition at line 222 of file sysfunc.C. References cps::SCUTrans(). |
|
||||||||||||
|
Performs multiple previously set-up data transfers. Performs the communications specified by its arguments.
Definition at line 321 of file sysfunc.C. References cps::MPISCU::Trans(). Referenced by cps::SCUTransAddr(). |
|
|
Performs a previously set-up data transfer. Performs the communication specified by its arguments.
Definition at line 307 of file sysfunc.C. References cps::SCUTransAddr(). |
|
|
A communications barrier function,. This function returns only when all pending communications operations have completed. Definition at line 338 of file sysfunc.C. References cps::MPISCU::fprintf_all(). Referenced by cps::getMinus2Data(), cps::getMinus3Data(), cps::getMinusData(), cps::getPlusData(), cps::glb_max(), cps::glb_min(), cps::glb_sum(), cps::glb_sum_dir(), cps::glb_sum_five(), cps::glb_sum_matrix_dir(), cps::glb_sum_multi_dir(), cps::qloadsave_pump_data(), and cps::slice_sum(). |
|
|
Gets a RNG seed.
Definition at line 74 of file sysfunc_noarch.h. |
|
|
Gets a RNG seed.
Definition at line 75 of file sysfunc_noarch.h. Referenced by cps::LatRanGen::Initialize(). |
|
|
Gets a RNG seed.
Definition at line 77 of file sysfunc_noarch.h. |
|
|
Gets a RNG seed.
Definition at line 76 of file sysfunc_noarch.h. |
|
|
Gets the size of the grid in the S direction.
Definition at line 68 of file sysfunc_bgl.h. Referenced by cps::Gsum64Ext::Init(). |
|
|
Gets the size of the grid in the T direction.
Definition at line 60 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(). |
|
|
Gets the size of the grid in the S direction.
Definition at line 69 of file sysfunc_bgl.h. Referenced by cps::Gsum64Ext::Init(). |
|
|
Gets the size of the grid in the X direction.
Definition at line 61 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(). |
|
|
Gets the size of the grid in the Y direction.
Definition at line 62 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(). |
|
|
Gets the size of the grid in the Z direction.
Definition at line 63 of file sysfunc_noarch.h. Referenced by cps::Gsum64Ext::Init(). |
|
||||||||||||||||
|
Sums a vector of floating point numbers over all nodes in a hyperplane. The vector pointed to by float_p is summed over each 3-dimensional hyperplane of nodes which is perpendiculat to the dir direction
Definition at line 63 of file slice_sum.C. References cps::SCUTrans(), cps::SCUTransComplete(), cps::sfree(), and cps::smalloc(). Referenced by cps::HadronPropS::getHadronPropS(), cps::CorrFunc::GlobalSum(), cps::FermionVectorTp::Norm(), cps::AlgWline::run(), cps::QPropW::Run(), cps::FermionVector::sumOverHyperPlane(), cps::FermionVector::sumOverHyperPlaneStride(), and cps::QPropW::WallSinkProp(). |
|
|
A barrier function.
Definition at line 81 of file sysfunc_noarch.h. Referenced by cps::DiracOp::MInvCG(), cps::QPropW::RestoreOrgProp(), cps::QPropW::RestoreQPropLs(), cps::QPropW::RestoreQPropLs_ftom(), cps::RunGConverter(), cps::QPropW::SaveQPropLs(), cps::Lattice::SumReTrPlaqNode(), cps::QPropW::SwapQPropLs(), cps::AlgMeas::TruncateFile(), and cps::WriteLatticeParallel::write(). |
|
|
|
|
|
1 if the dir is a torus, 0 if it is not
|
|
|
1 if the dir is a torus, 0 if it is not
|
|
|
1 if the dir is a torus, 0 if it is not
|
|
|
Gets an ID which is unique for each node.
Definition at line 48 of file sysfunc_noarch.h. Referenced by cps::Verbose::Clock(), cps::Lattice::CompareGaugeField(), wfm::dslash(), cps::Verbose::Flow(), cps::Fopen(), cps::MPISCU::fprintf(), cps::Verbose::FuncEnd(), cps::DiracOp::InvCg(), cps::ParallelIO::load(), cps::DiracOp::MInvCG(), cps::CheckSum::Print(), cps::print_flops(), cps::print_time(), cps::MPISCU::printf(), cps::MPISCU::printf_allid(), cps::QPropW::QPropW(), cps::RandomGenerator::Rand(), cps::LatRngRead::read(), cps::ReadLatticeParallel::read(), cps::QPropW::RestoreOrgProp(), cps::QPropW::RestoreQPropLs(), cps::QPropW::RestoreQPropLs_ftom(), cps::AlgMeas::RunTask(), cps::QPropW::SaveQPropLs(), cps::Start(), cps::ParallelIO::store(), cps::test_checksum(), cps::AlgMeas::TruncateFile(), cps::MPISCU::vfprintf(), cps::MPISCU::vprintf(), cps::wilson_dslash(), cps::LatRngWrite::write(), and cps::WriteLatticeParallel::write(). |
|
|
Gets a contiguous block of floating point data from the neighbouring node in a positive direction. This function also handles the case where there is no such node, i.e. the lattice is local in that direction.
Definition at line 57 of file get_data.C. Referenced by cps::get1Data(). |
1.3.9.1