Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Communications objects and functions


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

Function Documentation

int cps::CoorS  )  [inline]
 

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().

int cps::CoorT  )  [inline]
 

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().

int cps::CoorW  )  [inline]
 

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().

int cps::CoorX  )  [inline]
 

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().

int cps::CoorY  )  [inline]
 

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().

int cps::CoorZ  )  [inline]
 

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().

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.

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.

Parameters:
rcv_buf A buffer into which the data is copied.
send_buf A buffer from which the data is to be copied.
len The amount of data; the number of floating point numbers.
mu The direction of the transfer, one of {0, 1, 2, 3} corresponding to {x, y, z, t} respectively.
nu The other direction of the transfer.

Definition at line 134 of file get_data.C.

References cps::SCUTrans(), cps::SCUTransComplete(), cps::sfree(), and cps::smalloc().

void cps::getMinus3Data IFloat rcv_buf,
IFloat send_buf,
int  len,
int  dir
 

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.

Parameters:
rcv_buf A buffer into which the data is copied.
send_buf A buffer from which the data is to be copied.
len The amount of data; the number of floating point numbers.
dir The direction perpendicular to all of the directions in transfer is to take place, one of {0, 1, 2, 3} corresponding to {x, y, z, t} respectively.

Definition at line 176 of file get_data.C.

References cps::SCUTrans(), cps::SCUTransComplete(), cps::sfree(), and cps::smalloc().

void cps::getMinusData IFloat rcv_buf,
IFloat send_buf,
int  len,
int  mu
 

Sends data in positive direction/receives data from negative direction.

Gets a contiguous block of floating point data from the neighbouring node in a negative direction.

This function also handles the case where there is no such node, i.e. the lattice is local in that direction.

Parameters:
rcv_buf A buffer into which the data is copied.
send_buf A buffer from which the data is to be copied.
len The amount of data; the number of floating point numbers.
mu The direction of the transfer, one of {0, 1, 2, 3, 4} corresponding to {x, y, z, t, s} respectively.

Definition at line 86 of file get_data.C.

References cps::SCUTrans(), and cps::SCUTransComplete().

Referenced by cps::DiracOpAsqtad::Dslash(), cps::dwf_dslash_5_plus(), cps::dwf_dslash_5_plus_slice(), cps::FdwfBase::Freflex(), cps::HyperPlane::G(), cps::FermionVectorTp::GaussianSmearVector(), cps::FermionVector::GetFermion(), cps::Lattice::GetLink(), cps::DiracOpClover::GetLink(), cps::WspectFuzzing::GetLink(), cps::QPropW::GetMatrix(), cps::DTerms::GetTerm(), cps::Lattice::GsoCheck(), cps::Lattice::PathOrdProd(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), cps::pt_1vec(), cps::pt_1vec_cb_norm(), cps::pt_1vec_cb_pad(), cps::pt_mat(), cps::pt_mat_norm(), cps::pt_shift_field(), cps::pt_shift_field_vec(), cps::pt_shift_link(), cps::pt_vvpd(), cps::AlgWline::run(), cps::QPropWRand::ShiftPropForward(), cps::QPropW::ShiftPropForward(), cps::Lattice::SoCheck(), cps::stag_dirac(), cps::Lattice::Staple(), cps::TransfM(), and cps::wfm_comm_forward().

void cps::getPlusData IFloat rcv_buf,
IFloat send_buf,
int  len,
int  mu
 

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.

Parameters:
rcv_buf A buffer into which the data is copied.
send_buf A buffer from which the data is to be copied.
len The amount of data; the number of floating point numbers.
mu The direction of the transfer, one of {0, 1, 2, 3, 4} corresponding to {x, y, z, t, s} respectively.

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().

void cps::glb_max Float float_p  ) 
 

Finds the maximum floating point number over all nodes.

The number pointed to by float_p on all nodes is compared.

Parameters:
float_p The number to be compared.
Postcondition:
The maximum is found and is written back to float_p, which is then identical on all nodes.

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().

void cps::glb_min Float float_p  ) 
 

Finds the minimum floating point number over all nodes.

The number pointed to by float_p on all nodes is compared.

Parameters:
float_p The number to be compared.
Postcondition:
The minimum is found and is written back to float_p, which is then identical on all nodes.

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().

void cps::glb_sum Float float_p  ) 
 

Sums a floating point number over all nodes in a 4-dimensinal grid.

Parameters:
float_p The number to be summed.
Postcondition:
The number pointed to by float_p is summed over all nodes and that sum is written back to float_p, which is identical on all nodes.

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().

void cps::glb_sum_dir Float float_p,
int  dir
 

Sums a floating point number over all nodes along a single direction.

Parameters:
float_p The number to be summed.
dir The direction in which to sum; one of {0, 1, 2, 3, 4}, corresponding to {x, y, z, t, s}.
Postcondition:
The number pointed to by float_p is summed over all nodes along the dir direction, i.e. over each strip of nodes where the grid coordinates in all other directions are constant. That sum is written back to float_p, which is identical on all nodes in this strip.

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().

void cps::glb_sum_five Float float_p  ) 
 

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.

Parameters:
float_p The number to be summed.
Postcondition:
The number pointed to by float_p is summed over all nodes and that sum is written back to float_p, which is identical on all nodes.

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().

void cps::glb_sum_internal Float float_p,
int  dir,
int  len
 

Parameters:
float_p The number to be summed.
Postcondition:
The number pointed to by float_p is summed over all nodes and that sum is written back to float_p, which is identical on all nodes.

Definition at line 56 of file glb_sum_internal.C.

References max, and cps::MPISCU::printf().

Referenced by cps::glb_sum_multi_dir().

void cps::glb_sum_matrix_dir Matrix *  matrix_p,
int  dir
 

Sums a Matrix over all nodes along a single direction.

Parameters:
matrix_p The Matrix to be summed.
dir The direction in which to sum; one of {0, 1, 2, 3, 4}, corresponding to {x, y, z, t, s}.
Postcondition:
The matrix pointed to by float_p is summed over all nodes along the dir direction, i.e. over each strip of nodes where the grid coordinates in all other directions are constant. The matrix sum is written back to matrix_p, which is identical on all nodes in this strip.

Definition at line 59 of file glb_sum_matrix_dir.C.

References cps::SCUTrans(), and cps::SCUTransComplete().

void cps::glb_sum_multi_dir LatData &  lat,
const int  dir
 

Parameters:
float_p The number to be summed.
dir The direction in which to sum; one of {0, 1, 2, 3, 4}, corresponding to {x, y, z, t, s}.
len The number of floating point numbers in the vector.
Postcondition:
The vector pointed to by float_p is summed over all nodes along the dir direction, i.e. over each strip of nodes where the grid coordinates in all other directions are constant. That sum vector is written back to float_p, which is identical on all nodes in this strip.

Definition at line 52 of file glb_sum_multi_dir.C.

References cps::glb_sum_multi_dir().

void cps::glb_sum_multi_dir Float float_p,
int  dir,
int  len
 

Parameters:
float_p The number to be summed.
dir The direction in which to sum; one of {0, 1, 2, 3, 4}, corresponding to {x, y, z, t, s}.
len The number of floating point numbers in the vector.
Postcondition:
The vector pointed to by float_p is summed over all nodes along the dir direction, i.e. over each strip of nodes where the grid coordinates in all other directions are constant. That sum vector is written back to float_p, which is identical on all nodes in this strip.

Definition at line 59 of file glb_sum_multi_dir.C.

References cps::SCUTrans(), and cps::SCUTransComplete().

Referenced by cps::glb_sum_multi_dir().

int cps::NumNodes  )  [inline]
 

Returns the total number of nodes in the processor grid.

Definition at line 68 of file sysfunc_noarch.h.

int cps::SCURemap SCUDir  dir  ) 
 

Gets the direction used internally by the comms layer.

Definition at line 208 of file sysfunc.C.

void cps::SCUSetDMA SCUDirArg **  arg,
int  n
 

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.

Parameters:
arg A pointer ot an array of objects containing the information about the structure of the data.
n The number of sets of data to be transferred. ----------------------------------------------------------------

Definition at line 286 of file sysfunc.C.

Referenced by cps::SCUSetDMA().

void cps::SCUSetDMA SCUDirArg *  arg  ) 
 

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.

Parameters:
arg The object containing the information about the structure of the data.

Definition at line 275 of file sysfunc.C.

References cps::SCUSetDMA().

void cps::SCUTrans SCUDirArg *  arg,
unsigned int *  offset,
int  n
 

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.

Parameters:
arg The object containing the information about the structure of the data, its base address, etc.
offset The array of offsets from the base address, defining addresses to/from where data will be sent/received.
n The number of data transfers.

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().

void cps::SCUTrans SCUDirArg **  arg,
int  n
 

Generic multiple communication.

Performs the multiple communications specified in arg.

Parameters:
arg A pointer to an array of objects, each fully specifying what data to send to (or receive from) where.

Definition at line 233 of file sysfunc.C.

References cps::MPISCU::Trans().

void cps::SCUTrans SCUDirArg *  arg  ) 
 

Generic single communication.

Performs the communication specified in arg.

Parameters:
arg The object fully specifying what data to send to (or receive from) where.

Definition at line 222 of file sysfunc.C.

References cps::SCUTrans().

void cps::SCUTransAddr SCUDirArg **  arg,
int  n
 

Performs multiple previously set-up data transfers.

Performs the communications specified by its arguments.

Precondition:
The transfers must have been set up using SCUTransAddr
Parameters:
arg A pointer to an array of objects specifiying, for each transfer, the base address of the data, the direction of the transfer and whether to send of receive the data.
n The number of sets of data to be transferred.

Definition at line 321 of file sysfunc.C.

References cps::MPISCU::Trans().

Referenced by cps::SCUTransAddr().

void cps::SCUTransAddr SCUDirArg *  arg  ) 
 

Performs a previously set-up data transfer.

Performs the communication specified by its arguments.

Precondition:
The transfer must have been set up using SCUTransAddr
Parameters:
arg The object specifiying the base address of the data, the direction of the transfer and whether to send of receive the data.

Definition at line 307 of file sysfunc.C.

References cps::SCUTransAddr().

void cps::SCUTransComplete void   ) 
 

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().

unsigned int cps::Seed  )  [inline]
 

Gets a RNG seed.

Definition at line 74 of file sysfunc_noarch.h.

unsigned int cps::SeedS  )  [inline]
 

Gets a RNG seed.

Definition at line 75 of file sysfunc_noarch.h.

Referenced by cps::LatRanGen::Initialize().

unsigned int cps::SeedST  )  [inline]
 

Gets a RNG seed.

Definition at line 77 of file sysfunc_noarch.h.

unsigned int cps::SeedT  )  [inline]
 

Gets a RNG seed.

Definition at line 76 of file sysfunc_noarch.h.

int cps::SizeS  )  [inline]
 

Gets the size of the grid in the S direction.

Definition at line 68 of file sysfunc_bgl.h.

Referenced by cps::Gsum64Ext::Init().

int cps::SizeT  )  [inline]
 

Gets the size of the grid in the T direction.

Definition at line 60 of file sysfunc_noarch.h.

Referenced by cps::Gsum64Ext::Init().

int cps::SizeW  )  [inline]
 

Gets the size of the grid in the S direction.

Definition at line 69 of file sysfunc_bgl.h.

Referenced by cps::Gsum64Ext::Init().

int cps::SizeX  )  [inline]
 

Gets the size of the grid in the X direction.

Definition at line 61 of file sysfunc_noarch.h.

Referenced by cps::Gsum64Ext::Init().

int cps::SizeY  )  [inline]
 

Gets the size of the grid in the Y direction.

Definition at line 62 of file sysfunc_noarch.h.

Referenced by cps::Gsum64Ext::Init().

int cps::SizeZ  )  [inline]
 

Gets the size of the grid in the Z direction.

Definition at line 63 of file sysfunc_noarch.h.

Referenced by cps::Gsum64Ext::Init().

void cps::slice_sum Float float_p,
int  blcklength,
int  dir
 

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

Parameters:
float_p The number to be summed.
blcklength The number of floating point numbers in the vector.
dir The normal direction defining the hyperplane; one of {0, 1, 2, 3} corresponding to {x, y, z, t}.
Postcondition:
The vector sum is written back to float_p, which is identical on all nodes in this hyperplane.

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().

unsigned int cps::sync  )  [inline]
 

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().

int TorusT  ) 
 

int TorusX  ) 
 

1 if the dir is a torus, 0 if it is not

int TorusY  ) 
 

1 if the dir is a torus, 0 if it is not

int TorusZ  ) 
 

1 if the dir is a torus, 0 if it is not

int cps::UniqueID  )  [inline]
 

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().


Variable Documentation

const int cps::MAX_LENGTH = 4096
 

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.

Parameters:
rcv_buf A buffer into which the data is copied.
send_buf A buffer from which the data is to be copied.
len The amount of data; the number of floating point numbers.
mu The direction of the transfer, one of {0, 1, 2, 3, 4} corresponding to {x, y, z, t, s} respectively.

Definition at line 57 of file get_data.C.

Referenced by cps::get1Data().


Generated on Sat Oct 10 14:11:51 2009 for Columbia Physics System by  doxygen 1.3.9.1