![]() |
OGS
|
|
Classes | |
| class | AnotherMPIRankThrew |
| struct | Mpi |
| struct | Setup |
Functions | |
| template<typename T> | |
| constexpr MPI_Datatype | mpiType () |
| template<typename T> | |
| static std::vector< T > | allgather (T const &value, Mpi const &mpi) |
| template<typename T> | |
| static std::vector< T > | allgather (std::vector< T > const &vector, Mpi const &mpi) |
| template<typename T> | |
| static T | allreduce (T const &value, MPI_Op const &mpi_op, Mpi const &mpi) |
| template<typename T> | |
| static std::vector< T > | allreduce (std::vector< T > const &vector, MPI_Op const &mpi_op, Mpi const &mpi) |
| template<typename T> | |
| static void | allreduceInplace (std::vector< T > &vector, MPI_Op const &mpi_op, Mpi const &mpi) |
| template<typename T> | |
| static std::vector< int > | allgatherv (std::span< T > const send_buffer, std::vector< std::remove_const_t< T > > &receive_buffer, Mpi const &mpi) |
| static bool | anyOf (bool const val, Mpi const &mpi=Mpi{OGS_COMM_WORLD}) |
| static bool | allOf (bool const val, Mpi const &mpi=Mpi{OGS_COMM_WORLD}) |
| template<typename Exception> | |
| void | allRanksThrowOrNone (std::exception_ptr const &exception, auto &&warning_callback) |
| template<typename Exception> | |
| void | allRanksThrowOrNone (std::exception_ptr const &exception) |
| Same as above but using the standard WARN() function for warnings. | |
Variables | |
| MPI_Comm | OGS_COMM_WORLD = MPI_COMM_WORLD |
|
static |
Definition at line 98 of file MPI.h.
References BaseLib::MPI::Mpi::communicator, mpiType(), and BaseLib::MPI::Mpi::size.
|
static |
Definition at line 87 of file MPI.h.
References BaseLib::MPI::Mpi::communicator, mpiType(), and BaseLib::MPI::Mpi::size.
Referenced by allgatherv(), MeshLib::computeNumberOfRegularBaseNodesAtRank(), MeshLib::computeNumberOfRegularHigherOrderNodesAtRank(), MeshLib::computeRegularBaseNodeGlobalNodeIDsOfSubDomainPartition(), MeshLib::IO::getPartitionInfo(), MeshLib::IO::getTopologyType(), and MeshLib::IO::NodePartitionedMeshReader::newMesh().
|
static |
Allgather for variable data. Returns offsets in the receive buffer. The receive buffer is resized to accommodate the gathered data.
Definition at line 147 of file MPI.h.
References allgather(), BaseLib::MPI::Mpi::communicator, mpiType(), and BaseLib::sizesToOffsets().
Referenced by MeshLib::computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition(), and MathLib::PETScVector::getGlobalVector().
|
inlinestatic |
The reduction is implemented transparently for with and without MPI. In the latter case the input value is returned.
Definition at line 190 of file MPI.h.
References OGS_COMM_WORLD.
| void BaseLib::MPI::allRanksThrowOrNone | ( | std::exception_ptr const & | exception | ) |
Same as above but using the standard WARN() function for warnings.
Definition at line 283 of file MPI.h.
References allRanksThrowOrNone(), and WARN().
| void BaseLib::MPI::allRanksThrowOrNone | ( | std::exception_ptr const & | exception, |
| auto && | warning_callback ) |
This function throws if and only if the passed exception is non-null on any MPI rank.
The thrown exception is:
This function also checks if the thrown exception is derived from Exception.
Definition at line 236 of file MPI.h.
References anyOf(), BaseLib::demangle(), and BaseLib::typeToString().
Referenced by allRanksThrowOrNone(), ProcessLib::AssemblyMixin< Process >::assemble(), and ProcessLib::AssemblyMixin< Process >::assembleWithJacobian().
|
static |
Definition at line 120 of file MPI.h.
References BaseLib::MPI::Mpi::communicator, and mpiType().
|
static |
Definition at line 111 of file MPI.h.
References BaseLib::MPI::Mpi::communicator, and mpiType().
Referenced by MeshGeoToolsLib::BoundaryElementsAtPoint::BoundaryElementsAtPoint(), MeshLib::getNumberOfGlobalNodes(), NumLib::anonymous_namespace{DOFTableUtil.cpp}::norm1(), NumLib::anonymous_namespace{DOFTableUtil.cpp}::norm2(), NumLib::anonymous_namespace{DOFTableUtil.cpp}::normInfinity(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postNonLinearSolverConcreteProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::postTimestepConcreteProcess(), and MeshLib::IO::NodePartitionedMeshReader::readProperties().
|
static |
Definition at line 132 of file MPI.h.
References BaseLib::MPI::Mpi::communicator, and mpiType().
Referenced by MeshLib::computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition().
|
inlinestatic |
The reduction is implemented transparently for with and without MPI. In the latter case the input value is returned.
Definition at line 174 of file MPI.h.
References OGS_COMM_WORLD.
Referenced by allRanksThrowOrNone(), and NumLib::NonlinearSolver< NonlinearSolverTag::Newton >::solve().
|
constexpr |
Definition at line 53 of file MPI.h.
Referenced by allgather(), allgather(), allgatherv(), allreduce(), allreduce(), and allreduceInplace().
| MPI_Comm BaseLib::MPI::OGS_COMM_WORLD = MPI_COMM_WORLD |
Definition at line 9 of file MPI.cpp.
Referenced by ApplicationsLib::detail::LinearSolverLibrarySetupPETSc::LinearSolverLibrarySetupPETSc(), BaseLib::MPI::Mpi::Mpi(), MeshLib::IO::PVDFile::addVTUFile(), allOf(), anyOf(), MeshLib::IO::getCommunicator(), initializeLogger(), BaseLib::initOGSLogger(), MeshLib::IO::isFileManager(), ChemistryLib::PhreeqcIOData::specifyFileName(), and MeshLib::IO::VtuInterface::writeVTU().