escript  Revision_Unversioneddirectory
Classes | Namespaces | Macros | Typedefs | Functions
Esys_MPI.h File Reference
#include "system_dep.h"
#include "types.h"
#include <sstream>
#include <boost/shared_ptr.hpp>

Go to the source code of this file.

Classes

class  esysUtils::JMPI_
 
class  esysUtils::NoCOMM_WORLD
 

Namespaces

 esysUtils
 

Macros

#define MPI_INT   6
 
#define MPI_DOUBLE   11
 
#define MPI_COMM_WORLD   91
 
#define MPI_COMM_NULL   0
 
#define MPI_SUM   100
 
#define MPI_MIN   101
 
#define MPI_MAX   102
 
#define MPI_OP_NULL   17
 
#define ESYS_MPI_TODO   { fprintf( stdout, "\nTODO : %s:%d\n", __FILE__, __LINE__); MPI_Finalize(); exit(1); }
 
#define ESYS_MPI_INC_COUNTER(V, I)   {(V).msg_tag_counter=((V).msg_tag_counter+(I))%1010201;}
 
#define ESYS_MPI_SET_COUNTER(V, I)   {(V).msg_tag_counter=(I)%1010201;}
 

Typedefs

typedef int MPI_Comm
 
typedef int MPI_Request
 
typedef int MPI_Op
 
typedef int MPI_Status
 
typedef int Esys_MPI_rank
 
typedef boost::shared_ptr< JMPI_ > esysUtils::JMPI
 

Functions

int esysUtils::getSubWorldTag ()
 tag reserved for use by SubWorld code this value should be higher than the modulus used in JMPI_::setCounter, apart from that, its value is not particularly significant. More...
 
JMPI esysUtils::makeInfo (MPI_Comm comm, bool owncom)
 
bool esysUtils::Esys_MPIInfo_noError (const JMPI &mpi_info)
 
index_t esysUtils::mod_rank (index_t n, index_t k)
 
std::string esysUtils::appendRankToFileName (const std::string &fileName, int mpiSize, int mpiRank)
 Appends MPI rank to a file name if MPI size > 1. More...
 
bool esysUtils::shipString (const char *src, char **dest, MPI_Comm &comm)
 
bool esysUtils::checkResult (int input, int &output, const JMPI &comm)
 

Macro Definition Documentation

#define ESYS_MPI_INC_COUNTER (   V,
 
)    {(V).msg_tag_counter=((V).msg_tag_counter+(I))%1010201;}
#define ESYS_MPI_SET_COUNTER (   V,
 
)    {(V).msg_tag_counter=(I)%1010201;}
#define ESYS_MPI_TODO   { fprintf( stdout, "\nTODO : %s:%d\n", __FILE__, __LINE__); MPI_Finalize(); exit(1); }
#define MPI_COMM_NULL   0
#define MPI_COMM_WORLD   91
#define MPI_DOUBLE   11

Referenced by finley::Mesh::addPoints(), escript::Data::calc_maxGlobalDataPoint(), escript::Data::calc_minGlobalDataPoint(), paso::SystemMatrix::copyColCoupleBlock(), paso::SystemMatrix::copyRemoteCoupleBlock(), paso::Function::derivative(), Dudley_Mesh_read(), Dudley_NodeFile_gather_global(), finley::NodeFile::gather_global(), paso::SystemMatrix::getGlobalSize(), finley::getNodesMaster(), finley::getNodesSlave(), escript::MPIScalarReducer::getPyObj(), paso::FCT_Solver::getSafeTimeStepSize(), paso::ReactiveSolver::getSafeTimeStepSize(), escript::Data::getValueOfGlobalDataPointAsTuple(), escript::MPIDataReducer::groupSend(), escript::Data::infWorker(), paso::util::innerProduct(), escript::Data::integrateWorker(), speckley::Rectangle::interpolateElementsOnNodes(), speckley::Brick::interpolateNodesOnElements(), paso::util::l2(), escript::Data::lazyAlgWorker(), paso::util::lsup(), escript::Data::LsupWorker(), paso::SystemMatrix::mergeSystemMatrix(), paso::Preconditioner_AMG_CopyRemoteData(), paso::Preconditioner_AMG_extendB(), paso::Preconditioner_AMG_getRestriction(), ripley::Brick::randomFillWorker(), ripley::Rectangle::randomFillWorker(), finley::Mesh::read(), escript::MPIScalarReducer::recvFrom(), escript::MPIDataReducer::reduceRemoteValues(), escript::MPIScalarReducer::reduceRemoteValues(), escript::MPIScalarReducer::sendTo(), escript::MPIDataReducer::sendTo(), speckley::RipleyCoupler::shareWithNeighbours(), paso::MergedSolver::solve(), paso::Solver(), paso::Solver_BiCGStab(), paso::Solver_GMRES(), paso::Solver_PCG(), paso::Coupler::startCollect(), and escript::Data::supWorker().

#define MPI_INT   6

Referenced by paso::SystemMatrix::borrowMainDiagonalPointer(), escript::Data::calc_maxGlobalDataPoint(), escript::Data::calc_minGlobalDataPoint(), esysUtils::checkResult(), paso::SystemMatrix::copyRemoteCoupleBlock(), finley::ElementFile::distributeByRankOfDOF(), Dudley_ElementFile_distributeByRankOfDOF(), Dudley_ElementFile_setElementDistribution(), Dudley_Mesh_createDOFMappingAndCoupling(), Dudley_Mesh_createNodeFileMappings(), Dudley_Mesh_optimizeDOFDistribution(), Dudley_Mesh_optimizeDOFLabeling(), Dudley_Mesh_read(), Dudley_Mesh_resolveNodeIds(), Dudley_NodeFile_createDenseDOFLabeling(), Dudley_NodeFile_createDenseNodeLabeling(), Dudley_NodeFile_createDenseReducedDOFLabeling(), Dudley_NodeFile_createDenseReducedNodeLabeling(), Dudley_NodeFile_gather_global(), Dudley_NodeFile_setGlobalDOFRange(), Dudley_NodeFile_setGlobalIdRange(), Dudley_NodeFile_setGlobalNodeIDIndexRange(), Dudley_NodeFile_setGlobalReducedDegreeOfFreedomRange(), Dudley_NodeFile_setGlobalReducedNodeIDIndexRange(), Dudley_Util_setValuesInUse(), escript::DataConstant::dump(), finley::MeshAdapter::dump(), dudley::MeshAdapter::dump(), escript::DataTagged::dump(), paso::SystemMatrix::extendedRowsForST(), finley::NodeFile::gather_global(), escript::Data::get_MPIComm(), finley::getElementsMaster(), finley::getElementsSlave(), escript::getMPIWorldMax(), escript::getMPIWorldSum(), finley::getNodesMaster(), finley::getNodesSlave(), paso::TransportProblem::getSafeTimeStepSize(), escript::Data::interpolateFromTable1D(), escript::Data::interpolateFromTable2D(), escript::Data::interpolateFromTable3D(), weipa::EscriptDataset::loadData(), weipa::EscriptDataset::loadDomain(), escript::Data::matrixInverse(), paso::SystemMatrix::mergeSystemMatrix(), paso::Distribution::numPositives(), esysUtils::FileWriter::openFile(), finley::Mesh::optimizeDOFDistribution(), paso::Preconditioner_AMG_alloc(), paso::Preconditioner_AMG_buildInterpolationOperator(), paso::Preconditioner_AMG_buildInterpolationOperatorBlock(), paso::Preconditioner_AMG_CopyRemoteData(), paso::Preconditioner_AMG_extendB(), paso::Preconditioner_AMG_getProlongation(), paso::Preconditioner_AMG_getRestriction(), weipa::VisItControl::publishData(), finley::Mesh::read(), finley::Mesh::readGmshMaster(), finley::Mesh::readGmshSlave(), finley::recv_state(), escript::saveDataCSV(), weipa::EscriptDataset::saveVTKsingle(), finley::send_state(), weipa::EscriptDataset::setDomain(), weipa::EscriptDataset::setExternalDomain(), finley::Mesh::setOrders(), escript::Data::setTupleForGlobalDataPoint(), finley::util::setValuesInUse(), esysUtils::shipString(), paso::ReactiveSolver::solve(), escript::Data::toString(), weipa::EscriptDataset::updateSampleDistribution(), speckley::SpeckleyDomain::updateTagsInUse(), and ripley::RipleyDomain::updateTagsInUse().

#define MPI_MAX   102

Referenced by paso::SystemMatrix::borrowMainDiagonalPointer(), finley::NodeFile::createDenseNodeLabeling(), paso::Function::derivative(), escript::MPIScalarReducer::description(), Dudley_Mesh_resolveNodeIds(), Dudley_NodeFile_createDenseNodeLabeling(), Dudley_NodeFile_setGlobalDOFRange(), Dudley_NodeFile_setGlobalIdRange(), Dudley_NodeFile_setGlobalNodeIDIndexRange(), Dudley_NodeFile_setGlobalReducedDegreeOfFreedomRange(), Dudley_NodeFile_setGlobalReducedNodeIDIndexRange(), escript::Data::get_MPIComm(), finley::NodeFile::getGlobalDOFRange(), finley::NodeFile::getGlobalIdRange(), finley::NodeFile::getGlobalNodeIDIndexRange(), escript::getMPIWorldMax(), paso::TransportProblem::getSafeTimeStepSize(), escript::Data::infWorker(), escript::Data::interpolateFromTable1D(), escript::Data::interpolateFromTable2D(), escript::Data::interpolateFromTable3D(), escript::Data::lazyAlgWorker(), weipa::EscriptDataset::loadData(), weipa::EscriptDataset::loadDomain(), paso::util::lsup(), escript::Data::Lsup(), escript::Data::LsupWorker(), escript::makeScalarReducer(), escript::Data::matrixInverse(), escript::MPIScalarReducer::MPIScalarReducer(), esysUtils::FileWriter::openFile(), finley::Mesh::resolveNodeIds(), escript::saveDataCSV(), weipa::EscriptDataset::saveVTKsingle(), weipa::EscriptDataset::setDomain(), weipa::EscriptDataset::setExternalDomain(), escript::Data::setTupleForGlobalDataPoint(), esysUtils::shipString(), paso::ReactiveSolver::solve(), paso::Solver(), escript::Data::sup(), escript::Data::supWorker(), escript::SubWorld::synchVariableValues(), and escript::Data::toString().

#define MPI_MIN   101
#define MPI_OP_NULL   17
#define MPI_SUM   100

Typedef Documentation

typedef int Esys_MPI_rank
typedef int MPI_Comm
typedef int MPI_Op
typedef int MPI_Request
typedef int MPI_Status