Main encapsulation of MPI. More...
Main encapsulation of MPI.
The CommunicatorObject provides an interface to MPI. This is for convenience, consistency, and to provide an "easy" access point for replacing the communication substrate with something that's not MPI.
#include <COMM.H>
Public Member Functions | |
int | RenewCommunicator (MPI_Comm &inComm) |
MPI_Comm | GetCommunicator () const |
int | SetCommunicator (MPI_Comm &inComm) |
void | TakeOwnership () |
CommunicatorObject () | |
CommunicatorObject (MPI_Comm &incomm) | |
CommunicatorObject (int *narg, char ***args) | |
CommunicatorObject (const CommunicatorObject &incomm) | |
MPI_Datatype | ResolveDataType (const comm::DataTypes &dt) |
MPI_Op | ResolveOp (const comm::Ops &op) |
int | Split (int color, int key, CommunicatorObject &newcomm) |
int | WaitRecv (int recvid) |
int | WaitAll () |
void | ClearRequests () |
int | NOpenRequests () |
int | Initialize (CommunicatorObject &incomm) |
int | Initialize (int *narg=NULL, char ***args=NULL) |
bool | Good () |
int | SetExit (int errin) |
int | SetErr (int errin) |
void | ClearErr () |
int | Check (comm::Ops op=comm::MAXOP) |
int | NProc () |
int | Rank () |
int | CartRank () |
std::string | Hostname () |
std::vector< int > & | CartCoordinates () |
std::vector< int > & | CartDimensions () |
int | CartNeighbors (std::vector< int > &neighborRanks) |
MPI_Comm | CartComm () |
MPI_Comm | World () |
MPI_Comm | Comm () |
int | Finalize () |
int | Barrier () |
int | Size () |
int | ComputeCartesianDims (int numNodes, int numDims) |
int | InitializeCartesianTopology (int numNodes, int numDims, std::vector< int > &dimDir, const std::vector< int > &isPeriodic, bool reOrder, CommunicatorObject &cartComm) |
~CommunicatorObject () | |
int | StartSend (unsigned int rid) |
int | SendAll () |
int | StartRecv (unsigned int rid) |
int | RecvAll () |
int | BroadCast (std::string &sval, int root_rank=0) |
int | BroadCast (MobileObject *mo, int root_rank=0) |
int | _ASend (void *buf, int sendsize, unsigned int remote_rank, int tag=0) |
int | _SetSend (void *buf, int sendsize, unsigned int remote_rank, int tag=0) |
int | _ARecv (void *buf, int recvsize, unsigned int remote_rank, int tag=0) |
int | _SetRecv (void *buf, int recvsize, unsigned int remote_rank, int tag=0) |
int | _AllGatherv (void *sendbuf, int mysendcnt, int datasize, void *recvbuf) |
int | _Send (void *buf, int sendsize, unsigned int remote_rank, int tag=0) |
int | _Recv (void *buf, int recvsize, unsigned int remote_rank, int tag=0) |
int | _BroadCastMOV (std::vector< MobileObject *> &mos, int root_rank=0) |
int | _GatherMO (MobileObject *sPtr, std::vector< MobileObject *> &rVec, int sndcnt, int root=0) |
int | _GatherMOV (std::vector< MobileObject *> &sVec, std::vector< MobileObject *> &rVec, std::vector< int > &nsend_all, int root=0) |
int | _AllGatherMO (MobileObject *sPtr, std::vector< MobileObject *> &rVec, int sndcnt=1) |
int | _AllGatherMOV (std::vector< MobileObject *> &sVec, std::vector< MobileObject *> &rVec, std::vector< int > &nsend_all) |
template<typename DataType > | |
int | ASendBuf (DataType *sendBuf, size_t nVal, unsigned int remote_rank, int tag=-1) |
template<typename DataType > | |
int | ARecvBuf (DataType *recvbuf, size_t nVal, unsigned int remote_rank, int tag=0) |
template<typename DataType > | |
int | ASend (std::vector< DataType > &sendbuf, unsigned int remote_rank, int tag=0) |
template<typename DataType > | |
int | ASend (std::vector< DataType > &sendbuf, unsigned int startIndex, unsigned int sendSize, unsigned int remote_rank, int tag=0) |
template<typename DataType > | |
int | SetSend (std::vector< DataType > &sendbuf, unsigned int remote_rank, int tag=0) |
template<typename DataType > | |
int | SetRecv (std::vector< DataType > &recvbuf, unsigned int remote_rank, int tag=0) |
template<typename DataType > | |
int | ARecv (std::vector< DataType > &recvbuf, unsigned int remote_rank, int tag=0) |
template<typename DataType > | |
int | ARecv (std::vector< DataType > &recvbuf, unsigned int startIndex, unsigned int numRecv, unsigned int remote_rank, int tag=0) |
template<typename DataType > | |
int | StreamBroadCast (DataType &inData, int root_rank=0) |
template<typename DataType > | |
int | BroadCast (DataType &buf, int root_rank) |
template<typename DataType > | |
int | BroadCast (std::vector< DataType > &buf, int root_rank) |
template<typename DataType > | |
int | Reduce (DataType &send, DataType &recv, const comm::DataTypes &dt, const comm::Ops &op, int root) |
template<typename DataType > | |
int | Reduce (std::vector< DataType > &send, std::vector< DataType > &recv, const comm::DataTypes &dt, const comm::Ops &op, int root) |
template<typename DataType > | |
int | AllReduce (std::vector< DataType > &send, std::vector< DataType > &recv, const comm::DataTypes &dt, const comm::Ops &op) |
template<typename DataType > | |
int | AllReduce (DataType &send, DataType &recv, const comm::DataTypes &dt, const comm::Ops &op) |
template<typename DataType > | |
int | AllGather (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, int sndcnt=0, int recvcnt=0) |
template<typename DataType > | |
int | AllGather (DataType &sendval, std::vector< DataType > &recvvec) |
template<typename DataType > | |
int | AllGatherv (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, std::vector< int > &nsend_all) |
template<typename DataType > | |
int | AllGatherv (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec) |
template<typename DataType > | |
int | Gather (DataType &sendval, std::vector< DataType > &recvvec, int root=0) |
template<typename DataType > | |
int | StreamGather (DataType &sendval, std::vector< DataType > &recvvec, int root=0) |
template<typename DataType > | |
int | Gather (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, int sndcnt=0, int recvcnt=0, int root=0) |
template<typename DataType > | |
int | Gatherv (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, std::vector< int > &nsend_all, int nsend=0, int root=0) |
template<typename MOType > | |
int | BroadCastMobileObject (MOType &mo, int root_rank=0) |
template<typename MOType > | |
int | BroadCastMO (MOType &mo, int root_rank=0) |
template<typename MOType > | |
int | BroadCastMO (std::vector< MOType > &mov, int root_rank=0) |
template<typename MOType > | |
int | BroadCastMOVector (std::vector< MOType > &mov, int root_rank=0) |
template<typename MOType > | |
int | GatherMO (MOType &sendval, std::vector< MOType > &recvvec, int root=0) |
template<typename MOType > | |
int | GatherMO (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0) |
template<typename MOType > | |
int | AllGatherMO (MOType &sendval, std::vector< MOType > &recvvec) |
template<typename MOType > | |
int | AllGatherMO (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0) |
template<typename MOType > | |
int | GatherMOV (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0) |
template<typename MOType > | |
int | AllGatherMOV (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0) |
template<typename T > | |
int | Union (std::vector< T > &input_data, std::vector< T > &output_data) |
Public Attributes | |
MPI_Datatype | IntegerTypeID |
Private Attributes | |
int | _rank |
MPI_Comm | _comm |
MPI_Comm | _cart_comm |
int | _cart_rank |
bool | _master |
bool | _own_comm |
bool | _initd |
int | _error |
int | _rc |
int | _nproc |
std::vector< MPI_Request > | _send_requests |
std::vector< MPI_Request > | _recv_requests |
std::vector< int > | _send_tags |
std::vector< int > | _recv_tags |
std::vector< MPI_Status > | _status |
std::vector< int > | _cart_coords |
std::vector< int > | _cart_dims |
std::vector< int > | _cart_periodic |
Definition at line 93 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_error, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, CommunicatorObject::_rank, and CommunicatorObject::_rc.
CommunicatorObject | ( | MPI_Comm & | incomm | ) |
Definition at line 105 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_error, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, CommunicatorObject::_rank, and CommunicatorObject::_rc.
CommunicatorObject | ( | int * | narg, |
char *** | args | ||
) |
Definition at line 120 of file COMM.C.
References CommunicatorObject::_error, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::Initialize().
CommunicatorObject | ( | const CommunicatorObject & | incomm | ) |
Definition at line 75 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_error, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::GetCommunicator().
~CommunicatorObject | ( | ) |
Definition at line 383 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_initd, and CommunicatorObject::_own_comm.
int _AllGatherMO | ( | MobileObject * | sPtr, |
std::vector< MobileObject *> & | rVec, | ||
int | sndcnt = 1 |
||
) |
Definition at line 704 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, CommunicatorObject::AllGather(), MobileObject::DestroyBuffer(), MobileObject::GetBuffer(), and MobileObject::Pack().
int _AllGatherMOV | ( | std::vector< MobileObject *> & | sVec, |
std::vector< MobileObject *> & | rVec, | ||
std::vector< int > & | nsend_all | ||
) |
Definition at line 796 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::AllGatherv().
int _AllGatherv | ( | void * | sendbuf, |
int | mysendcnt, | ||
int | datasize, | ||
void * | recvbuf | ||
) |
Definition at line 542 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::AllGather().
int _ARecv | ( | void * | buf, |
int | recvsize, | ||
unsigned int | remote_rank, | ||
int | tag = 0 |
||
) |
Definition at line 500 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_rc, CommunicatorObject::_recv_requests, and CommunicatorObject::_recv_tags.
int _ASend | ( | void * | buf, |
int | sendsize, | ||
unsigned int | remote_rank, | ||
int | tag = 0 |
||
) |
Definition at line 460 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_rc, CommunicatorObject::_send_requests, and CommunicatorObject::_send_tags.
int _BroadCastMOV | ( | std::vector< MobileObject *> & | mos, |
int | root_rank = 0 |
||
) |
Definition at line 630 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_rank, and CommunicatorObject::_rc.
int _GatherMO | ( | MobileObject * | sPtr, |
std::vector< MobileObject *> & | rVec, | ||
int | sndcnt, | ||
int | root = 0 |
||
) |
Definition at line 581 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, MobileObject::DestroyBuffer(), CommunicatorObject::Gather(), MobileObject::GetBuffer(), and MobileObject::Pack().
int _GatherMOV | ( | std::vector< MobileObject *> & | sVec, |
std::vector< MobileObject *> & | rVec, | ||
std::vector< int > & | nsend_all, | ||
int | root = 0 |
||
) |
Definition at line 735 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::Gatherv().
int _Recv | ( | void * | buf, |
int | recvsize, | ||
unsigned int | remote_rank, | ||
int | tag = 0 |
||
) |
Definition at line 515 of file COMM.C.
References CommunicatorObject::_comm, and CommunicatorObject::_rc.
int _Send | ( | void * | buf, |
int | sendsize, | ||
unsigned int | remote_rank, | ||
int | tag = 0 |
||
) |
Definition at line 475 of file COMM.C.
References CommunicatorObject::_comm, and CommunicatorObject::_rc.
int _SetRecv | ( | void * | buf, |
int | recvsize, | ||
unsigned int | remote_rank, | ||
int | tag = 0 |
||
) |
Definition at line 484 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_rc, CommunicatorObject::_recv_requests, and CommunicatorObject::_recv_tags.
int _SetSend | ( | void * | buf, |
int | sendsize, | ||
unsigned int | remote_rank, | ||
int | tag = 0 |
||
) |
Definition at line 527 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_rc, CommunicatorObject::_send_requests, and CommunicatorObject::_send_tags.
|
inline |
Definition at line 326 of file COMM.H.
Referenced by CommunicatorObject::_AllGatherMO(), and CommunicatorObject::_AllGatherv().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 366 of file COMM.H.
References ix::comm::DTINT, and ix::comm::SUMOP.
Referenced by CommunicatorObject::_AllGatherMOV().
|
inline |
Definition at line 381 of file COMM.H.
References ix::comm::DTINT, and ix::comm::SUMOP.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 163 of file COMM.H.
Referenced by halo::PostReceives(), halo::PostSimpleReceives(), and halo::ReceiveMessage().
|
inline |
|
inline |
|
inline |
Definition at line 155 of file COMM.H.
Referenced by halo::Send(), halo::SendMessage(), and halo::SimpleSend().
|
inline |
Definition at line 124 of file COMM.H.
Referenced by pcpp::io::Everyone(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::FunctionEntry(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::FunctionExit(), plascom2::ParallelTest(), application::RunApplication(), TestGrid_CurvilinearMetric(), TestGrid_CurvilinearVGWavy(), TestGrid_PBS_IntegratedHalo(), TestHDF5HyperSlab(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Scalar_Advection3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSRectilinear2DX(), TestMaxwellRHSTimeIntegrate(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), TestPlasCom2_PFCurvilinear2DX_Regression(), TestPlasCom2_PFCurvilinear2DY_Regression(), TestPlasCom2_PFCurvilinear3DZ_Regression(), TestPlasCom2_PFRectilinear2DX_Regression(), TestPlasCom2_PFRectilinear2DY_Regression(), TestPlasCom2_PFRectilinear3DZ_Regression(), TestPlasCom2_Poiseuille2DY_Regression(), TestPlasCom2_Restart(), TestPlasCom2_Scalar_Advection2DX(), TestPlasCom2_Scalar_Advection2DY(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), TestPlasCom2_ViscousShock2DX_Regression(), TestPlasCom2_ViscousShock2DY_Regression(), TestPlasCom2_ViscousShock3DZ_Regression(), TestPlasCom2_VSCurvilinear2DX_Regression(), TestPlasCom2_VSCurvilinear2DY_Regression(), TestPlasCom2_VSCurvilinear3DZ_Regression(), TestPlasCom2_VSRectilinear2DX_Regression(), TestPlasCom2_VSRectilinear2DY_Regression(), TestPlasCom2_VSRectilinear3DZ_Regression(), TestPlasCom2Input(), TestPlasCom2Output(), and TestVelocityGradientPeriodic().
int BroadCast | ( | std::string & | sval, |
int | root_rank = 0 |
||
) |
Definition at line 437 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_rank, and CommunicatorObject::_rc.
Referenced by pcpp::util::ProcessConfigurationFile(), pcpp::util::ProcessConfigurationRestart(), plascom2::util::ReadLegacyBCDat(), and TestPlasCom2Input().
int BroadCast | ( | MobileObject * | mo, |
int | root_rank = 0 |
||
) |
Definition at line 561 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_rank, CommunicatorObject::_rc, MobileObject::GetBuffer(), MobileObject::Pack(), MobileObject::PrepareBuffer(), and MobileObject::UnPack().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 117 of file COMM.H.
Referenced by parallel_blockstructured::ParallelSetup(), pcpp::comm::SetupCartesianTopology(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5HyperSlab(), and TestHDF5Read2DBlockStructuredGrid().
|
inline |
Definition at line 118 of file COMM.H.
Referenced by parallel_blockstructured::ParallelSetup(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5HyperSlab(), and TestHDF5Read2DBlockStructuredGrid().
int CartNeighbors | ( | std::vector< int > & | neighborRanks | ) |
Definition at line 173 of file COMM.C.
References CommunicatorObject::_cart_dims, and CommunicatorObject::_comm.
Referenced by parallel_blockstructured::ExchangeCoordinates(), parallel_blockstructured::ExchangeNodalData(), rhs< GridT, StateT, OperatorT >::SetGrid(), pcpp::comm::SetupCartesianTopology(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5HyperSlab(), and TestHDF5Read2DBlockStructuredGrid().
|
inline |
Definition at line 115 of file COMM.H.
References ix::sys::Hostname().
int Check | ( | comm::Ops | op = comm::MAXOP | ) |
Definition at line 355 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_error, CommunicatorObject::_rc, and CommunicatorObject::ResolveOp().
Referenced by pcpp::comm::CheckResult(), plascom2::util::ConvertLegacyConfiguration(), base< DomainType >::ErrorCheck(), pcpp::io::hdf5::FileInfo(), plascom2::ParallelTest(), pcpp::util::ProcessConfigurationFile(), pcpp::util::ProcessConfigurationRestart(), plascom2::util::ReadLegacyBCDat(), TestHaloParallel(), TestHDF5GridIO(), TestHDF5LegacyFileInfo(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), TestPCPPHDF5Read(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), and TestPlasCom2Input().
|
inline |
Definition at line 111 of file COMM.H.
References ix::comm::MAXOP.
Referenced by CommunicatorObject::RenewCommunicator().
void ClearRequests | ( | ) |
Definition at line 291 of file COMM.C.
References CommunicatorObject::_recv_requests, CommunicatorObject::_recv_tags, CommunicatorObject::_send_requests, and CommunicatorObject::_send_tags.
Referenced by CommunicatorObject::RenewCommunicator(), and CommunicatorObject::WaitAll().
|
inline |
Definition at line 122 of file COMM.H.
Referenced by base::Open(), pcpp::io::hdf5::ParallelReadBlockStructuredGrid(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFCurvilinear2DY(), TestIntegrated_PFCurvilinear3DZ(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_PFRectilinear2DY(), TestIntegrated_PFRectilinear3DZ(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Poiseuille2DY(), TestIntegrated_Poiseuille3DZ(), TestIntegrated_Scalar_Advection3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_ViscousShock2DY(), TestIntegrated_ViscousShock3DZ(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSCurvilinear2DY(), TestIntegrated_VSCurvilinear3DZ(), TestIntegrated_VSRectilinear2DX(), TestIntegrated_VSRectilinear2DY(), TestIntegrated_VSRectilinear3DZ(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), TestPlasCom2_PFCurvilinear2DX_Regression(), TestPlasCom2_PFCurvilinear2DY_Regression(), TestPlasCom2_PFCurvilinear3DZ_Regression(), TestPlasCom2_PFRectilinear2DX_Regression(), TestPlasCom2_PFRectilinear2DY_Regression(), TestPlasCom2_PFRectilinear3DZ_Regression(), TestPlasCom2_Poiseuille2DX_Regression(), TestPlasCom2_Poiseuille2DY_Regression(), TestPlasCom2_Poiseuille3DZ_Regression(), TestPlasCom2_Restart(), TestPlasCom2_Scalar_Advection2DX(), TestPlasCom2_Scalar_Advection2DY(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), TestPlasCom2_ViscousShock2DX_Regression(), TestPlasCom2_ViscousShock2DY_Regression(), TestPlasCom2_ViscousShock3DZ_Regression(), TestPlasCom2_VSCurvilinear2DX_Regression(), TestPlasCom2_VSCurvilinear2DY_Regression(), TestPlasCom2_VSCurvilinear3DZ_Regression(), TestPlasCom2_VSRectilinear2DX_Regression(), TestPlasCom2_VSRectilinear2DY_Regression(), and TestPlasCom2_VSRectilinear3DZ_Regression().
int ComputeCartesianDims | ( | int | numNodes, |
int | numDims | ||
) |
Definition at line 166 of file COMM.C.
References CommunicatorObject::_cart_dims.
Referenced by CommunicatorObject::InitializeCartesianTopology().
int Finalize | ( | ) |
Definition at line 370 of file COMM.C.
References CommunicatorObject::_initd.
Referenced by ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::Finalize().
|
inline |
Definition at line 395 of file COMM.H.
Referenced by CommunicatorObject::_GatherMO().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 460 of file COMM.H.
Referenced by CommunicatorObject::_GatherMOV().
|
inline |
Definition at line 85 of file COMM.H.
Referenced by CommunicatorObject::CommunicatorObject(), pcpp::comm::ReduceTimers(), and TestOverkit_Config().
int Initialize | ( | CommunicatorObject & | incomm | ) |
Definition at line 310 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, CommunicatorObject::_rank, and CommunicatorObject::_rc.
Referenced by CommunicatorObject::CommunicatorObject(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::Init(), mpiglobal::mpiglobal(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::ParallelGlobalObj(), and ParallelObject::ParallelObject().
int Initialize | ( | int * | narg = NULL , |
char *** | args = NULL |
||
) |
Definition at line 328 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, and CommunicatorObject::_rc.
int InitializeCartesianTopology | ( | int | numNodes, |
int | numDims, | ||
std::vector< int > & | dimDir, | ||
const std::vector< int > & | isPeriodic, | ||
bool | reOrder, | ||
CommunicatorObject & | cartComm | ||
) |
Definition at line 207 of file COMM.C.
References CommunicatorObject::_cart_comm, CommunicatorObject::_cart_coords, CommunicatorObject::_cart_dims, CommunicatorObject::_cart_periodic, CommunicatorObject::_cart_rank, CommunicatorObject::_comm, CommunicatorObject::ComputeCartesianDims(), and CommunicatorObject::RenewCommunicator().
Referenced by pcpp::comm::SetupCartesianTopology().
|
inline |
Definition at line 105 of file COMM.H.
References plascom2::operators::sbp::Initialize().
|
inline |
Definition at line 113 of file COMM.H.
Referenced by simulation::report::Grid(), halo::PostReceives(), application::RunMaxwellSolver(), application::RunPlasCom2(), halo::Send(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFCurvilinear2DY(), TestIntegrated_PFCurvilinear3DZ(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_PFRectilinear2DY(), TestIntegrated_PFRectilinear3DZ(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Poiseuille2DY(), TestIntegrated_Poiseuille3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_ViscousShock2DY(), TestIntegrated_ViscousShock3DZ(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSCurvilinear2DY(), TestIntegrated_VSCurvilinear3DZ(), TestIntegrated_VSRectilinear2DX(), TestIntegrated_VSRectilinear2DY(), TestIntegrated_VSRectilinear3DZ(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), and TestPlasCom2_Restart().
int Rank | ( | ) |
Definition at line 363 of file COMM.C.
References CommunicatorObject::_comm, and CommunicatorObject::_rank.
Referenced by plascom2::util::ConfigureVirtualNode(), plascom2::util::ConvertLegacyConfiguration(), testfixtures::CreateSimulationFixtures(), euler::util::CreateSimulationFixtures(), pcpp::io::Everyone(), pcpp::io::hdf5::FetchGridData(), pcpp::io::hdf5::FetchStateData(), pcpp::io::hdf5::FileInfo(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::Init(), euler::util::InitializeSimulationFixtures(), plascom2::ParallelTest(), pcpp::util::ProcessConfigurationFile(), pcpp::util::ProcessConfigurationRestart(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::Rank(), pcpp::io::hdf5::ReadGrid(), plascom2::util::ReadLegacyBCDat(), plascom2::io::hdf5::ReadSingleState(), application::RunMaxwellSolver(), application::RunPlasCom2(), ParallelTestingObject< CommType, ResultsType >::RunTest(), pcpp::comm::SetupCartesianTopology(), plascom2::util::SplitDomains(), TestGrid_PBS_IntegratedHalo(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5GridIO(), TestHDF5HyperSlab(), TestHDF5LegacyFileInfo(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFCurvilinear2DY(), TestIntegrated_PFCurvilinear3DZ(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_PFRectilinear2DY(), TestIntegrated_PFRectilinear3DZ(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Poiseuille2DY(), TestIntegrated_Poiseuille3DZ(), TestIntegrated_Scalar_Advection3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_ViscousShock2DY(), TestIntegrated_ViscousShock3DZ(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSCurvilinear2DY(), TestIntegrated_VSCurvilinear3DZ(), TestIntegrated_VSRectilinear2DX(), TestIntegrated_VSRectilinear2DY(), TestIntegrated_VSRectilinear3DZ(), TestPCPPHDF5Read(), TestPCPPHDF5Write(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), TestPlasCom2_PFCurvilinear2DX_Regression(), TestPlasCom2_PFCurvilinear2DY_Regression(), TestPlasCom2_PFCurvilinear3DZ_Regression(), TestPlasCom2_PFRectilinear2DX_Regression(), TestPlasCom2_PFRectilinear2DY_Regression(), TestPlasCom2_PFRectilinear3DZ_Regression(), TestPlasCom2_Poiseuille2DX_Regression(), TestPlasCom2_Poiseuille2DY_Regression(), TestPlasCom2_Poiseuille3DZ_Regression(), TestPlasCom2_Restart(), TestPlasCom2_Scalar_Advection2DX(), TestPlasCom2_Scalar_Advection2DY(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), TestPlasCom2_ViscousShock2DX_Regression(), TestPlasCom2_ViscousShock2DY_Regression(), TestPlasCom2_ViscousShock3DZ_Regression(), TestPlasCom2_VSCurvilinear2DX_Regression(), TestPlasCom2_VSCurvilinear2DY_Regression(), TestPlasCom2_VSCurvilinear3DZ_Regression(), TestPlasCom2_VSRectilinear2DX_Regression(), TestPlasCom2_VSRectilinear2DY_Regression(), TestPlasCom2_VSRectilinear3DZ_Regression(), TestPlasCom2Input(), and TestPlasCom2Output().
int RecvAll | ( | ) |
Definition at line 428 of file COMM.C.
References CommunicatorObject::_rc, and CommunicatorObject::_recv_requests.
|
inline |
|
inline |
int RenewCommunicator | ( | MPI_Comm & | inComm | ) |
Definition at line 131 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, CommunicatorObject::_rank, CommunicatorObject::_rc, CommunicatorObject::ClearErr(), and CommunicatorObject::ClearRequests().
Referenced by CommunicatorObject::InitializeCartesianTopology().
MPI_Datatype ResolveDataType | ( | const comm::DataTypes & | dt | ) |
Definition at line 857 of file COMM.C.
References ix::comm::DTBYTE, ix::comm::DTCHAR, ix::comm::DTDOUBLE, ix::comm::DTFLOAT, ix::comm::DTINT, ix::comm::DTSIZET, ix::comm::DTUBYTE, ix::comm::DTUCHAR, and ix::comm::DTUINT.
MPI_Op ResolveOp | ( | const comm::Ops & | op | ) |
Definition at line 885 of file COMM.C.
References ix::comm::MAXLOCOP, ix::comm::MAXOP, ix::comm::MINLOCOP, ix::comm::MINOP, ix::comm::PRODOP, and ix::comm::SUMOP.
Referenced by CommunicatorObject::Check().
int SendAll | ( | ) |
Definition at line 408 of file COMM.C.
References CommunicatorObject::_rc, and CommunicatorObject::_send_requests.
|
inline |
Definition at line 110 of file COMM.H.
Referenced by plascom2::util::ConvertLegacyConfiguration(), pcpp::io::hdf5::FileInfo(), pcpp::util::ProcessConfigurationRestart(), plascom2::util::ReadLegacyBCDat(), base< DomainType >::SetError(), TestHaloParallel(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), and TestPlasCom2Input().
|
inline |
Definition at line 109 of file COMM.H.
Referenced by pcpp::comm::CheckResult(), plascom2::ParallelTest(), pcpp::util::ProcessConfigurationFile(), TestHDF5GridIO(), TestHDF5LegacyFileInfo(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), and TestPCPPHDF5Read().
|
inline |
|
inline |
int Size | ( | ) |
Definition at line 376 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_nproc, and CommunicatorObject::_rc.
Referenced by application::ConfigureSimulation(), plascom2::util::ConfigureVirtualNode(), testfixtures::CreateSimulationFixtures(), euler::util::CreateSimulationFixtures(), pcpp::io::Everyone(), euler::util::InitializeSimulationFixtures(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::NProc(), mpiglobal::NumProc(), plascom2::ParallelTest(), ParallelTestingObject< CommType, ResultsType >::Prologue(), pcpp::comm::SetupCartesianTopology(), plascom2::util::SplitDomains(), TestGrid_PBS_IntegratedHalo(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5GridIO(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), TestPlasCom2Output(), and plascom2::VirtualNodeReport().
int Split | ( | int | color, |
int | key, | ||
CommunicatorObject & | newcomm | ||
) |
Definition at line 151 of file COMM.C.
References CommunicatorObject::_comm, CommunicatorObject::_initd, CommunicatorObject::_master, CommunicatorObject::_nproc, CommunicatorObject::_own_comm, CommunicatorObject::_rank, and CommunicatorObject::_rc.
Referenced by plascom2::util::ConfigureVirtualNode(), and plascom2::util::SplitDomains().
int StartRecv | ( | unsigned int | rid | ) |
Definition at line 417 of file COMM.C.
References CommunicatorObject::_rc, and CommunicatorObject::_recv_requests.
int StartSend | ( | unsigned int | rid | ) |
Definition at line 395 of file COMM.C.
References CommunicatorObject::_error, CommunicatorObject::_rc, and CommunicatorObject::_send_requests.
|
inline |
Definition at line 225 of file COMM.H.
Referenced by plascom2::util::ConvertLegacyConfiguration(), pcpp::io::hdf5::FileInfo(), TestHDF5GridIO(), TestHDF5LegacyFileInfo(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), and TestPlasCom2Input().
|
inline |
|
inline |
int WaitAll | ( | ) |
Definition at line 266 of file COMM.C.
References CommunicatorObject::_rc, CommunicatorObject::_recv_requests, CommunicatorObject::_send_requests, CommunicatorObject::_status, and CommunicatorObject::ClearRequests().
Referenced by halo::CompleteReceives(), halo::CompleteSimpleReceives(), halo::ReceiveMessage(), and halo::Wait().
int WaitRecv | ( | int | recvid | ) |
Definition at line 257 of file COMM.C.
References CommunicatorObject::_rc, CommunicatorObject::_send_requests, and CommunicatorObject::_status.
|
private |
Definition at line 67 of file COMM.H.
Referenced by CommunicatorObject::InitializeCartesianTopology().
|
private |
Definition at line 80 of file COMM.H.
Referenced by CommunicatorObject::InitializeCartesianTopology().
|
private |
Definition at line 81 of file COMM.H.
Referenced by CommunicatorObject::CartNeighbors(), CommunicatorObject::ComputeCartesianDims(), and CommunicatorObject::InitializeCartesianTopology().
|
private |
Definition at line 82 of file COMM.H.
Referenced by CommunicatorObject::InitializeCartesianTopology().
|
private |
Definition at line 68 of file COMM.H.
Referenced by CommunicatorObject::InitializeCartesianTopology().
|
private |
Definition at line 66 of file COMM.H.
Referenced by CommunicatorObject::_AllGatherMO(), CommunicatorObject::_AllGatherMOV(), CommunicatorObject::_AllGatherv(), CommunicatorObject::_ARecv(), CommunicatorObject::_ASend(), CommunicatorObject::_BroadCastMOV(), CommunicatorObject::_GatherMO(), CommunicatorObject::_GatherMOV(), CommunicatorObject::_Recv(), CommunicatorObject::_Send(), CommunicatorObject::_SetRecv(), CommunicatorObject::_SetSend(), CommunicatorObject::BroadCast(), CommunicatorObject::CartNeighbors(), CommunicatorObject::Check(), CommunicatorObject::CommunicatorObject(), CommunicatorObject::Initialize(), CommunicatorObject::InitializeCartesianTopology(), CommunicatorObject::Rank(), CommunicatorObject::RenewCommunicator(), CommunicatorObject::Size(), CommunicatorObject::Split(), and CommunicatorObject::~CommunicatorObject().
|
private |
Definition at line 72 of file COMM.H.
Referenced by CommunicatorObject::Check(), CommunicatorObject::CommunicatorObject(), and CommunicatorObject::StartSend().
|
private |
Definition at line 71 of file COMM.H.
Referenced by CommunicatorObject::CommunicatorObject(), CommunicatorObject::Finalize(), CommunicatorObject::Initialize(), CommunicatorObject::RenewCommunicator(), CommunicatorObject::Split(), and CommunicatorObject::~CommunicatorObject().
|
private |
Definition at line 69 of file COMM.H.
Referenced by CommunicatorObject::CommunicatorObject(), CommunicatorObject::Initialize(), CommunicatorObject::RenewCommunicator(), and CommunicatorObject::Split().
|
private |
Definition at line 74 of file COMM.H.
Referenced by CommunicatorObject::_AllGatherMO(), CommunicatorObject::_AllGatherMOV(), CommunicatorObject::_AllGatherv(), CommunicatorObject::_GatherMO(), CommunicatorObject::_GatherMOV(), CommunicatorObject::CommunicatorObject(), CommunicatorObject::Initialize(), CommunicatorObject::RenewCommunicator(), CommunicatorObject::Size(), and CommunicatorObject::Split().
|
private |
Definition at line 70 of file COMM.H.
Referenced by CommunicatorObject::CommunicatorObject(), CommunicatorObject::Initialize(), CommunicatorObject::RenewCommunicator(), CommunicatorObject::Split(), and CommunicatorObject::~CommunicatorObject().
|
private |
Definition at line 65 of file COMM.H.
Referenced by CommunicatorObject::_AllGatherMO(), CommunicatorObject::_AllGatherMOV(), CommunicatorObject::_AllGatherv(), CommunicatorObject::_BroadCastMOV(), CommunicatorObject::_GatherMO(), CommunicatorObject::_GatherMOV(), CommunicatorObject::BroadCast(), CommunicatorObject::CommunicatorObject(), CommunicatorObject::Initialize(), CommunicatorObject::Rank(), CommunicatorObject::RenewCommunicator(), and CommunicatorObject::Split().
|
private |
Definition at line 73 of file COMM.H.
Referenced by CommunicatorObject::_AllGatherMO(), CommunicatorObject::_AllGatherMOV(), CommunicatorObject::_AllGatherv(), CommunicatorObject::_ARecv(), CommunicatorObject::_ASend(), CommunicatorObject::_BroadCastMOV(), CommunicatorObject::_GatherMO(), CommunicatorObject::_GatherMOV(), CommunicatorObject::_Recv(), CommunicatorObject::_Send(), CommunicatorObject::_SetRecv(), CommunicatorObject::_SetSend(), CommunicatorObject::BroadCast(), CommunicatorObject::Check(), CommunicatorObject::CommunicatorObject(), CommunicatorObject::Initialize(), CommunicatorObject::RecvAll(), CommunicatorObject::RenewCommunicator(), CommunicatorObject::SendAll(), CommunicatorObject::Size(), CommunicatorObject::Split(), CommunicatorObject::StartRecv(), CommunicatorObject::StartSend(), CommunicatorObject::WaitAll(), and CommunicatorObject::WaitRecv().
|
private |
Definition at line 76 of file COMM.H.
Referenced by CommunicatorObject::_ARecv(), CommunicatorObject::_SetRecv(), CommunicatorObject::ClearRequests(), CommunicatorObject::RecvAll(), CommunicatorObject::StartRecv(), and CommunicatorObject::WaitAll().
|
private |
Definition at line 78 of file COMM.H.
Referenced by CommunicatorObject::_ARecv(), CommunicatorObject::_SetRecv(), and CommunicatorObject::ClearRequests().
|
private |
Definition at line 75 of file COMM.H.
Referenced by CommunicatorObject::_ASend(), CommunicatorObject::_SetSend(), CommunicatorObject::ClearRequests(), CommunicatorObject::SendAll(), CommunicatorObject::StartSend(), CommunicatorObject::WaitAll(), and CommunicatorObject::WaitRecv().
|
private |
Definition at line 77 of file COMM.H.
Referenced by CommunicatorObject::_ASend(), CommunicatorObject::_SetSend(), and CommunicatorObject::ClearRequests().
|
private |
Definition at line 79 of file COMM.H.
Referenced by CommunicatorObject::WaitAll(), and CommunicatorObject::WaitRecv().