![]() |
Peano
|
#include <GridStatistics.h>
Public Types | |
enum | ObjectConstruction { NoData } |
Static Public Member Functions | |
static MPI_Datatype | getForkDatatype () |
Hands out MPI datatype if we work without the LLVM MPI extension. | |
static MPI_Datatype | getJoinDatatype () |
static MPI_Datatype | getBoundaryExchangeDatatype () |
static MPI_Datatype | getMultiscaleDataExchangeDatatype () |
static MPI_Datatype | getGlobalCommunciationDatatype () |
static void | freeForkDatatype () |
static void | freeJoinDatatype () |
static void | freeBoundaryExchangeDatatype () |
static void | freeMultiscaleDataExchangeDatatype () |
static void | freeGlobalCommunciationDatatype () |
static void | initDatatype () |
Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation. | |
static void | shutdownDatatype () |
Free the underlying MPI datatype. | |
static void | send (const peano4::grid::GridStatistics &buffer, int destination, int tag, MPI_Comm communicator) |
In DaStGen (the first version), I had a non-static version of the send as well as the receive. | |
static void | receive (peano4::grid::GridStatistics &buffer, int source, int tag, MPI_Comm communicator) |
static void | send (const peano4::grid::GridStatistics &buffer, int destination, int tag, std::function< void()> startCommunicationFunctor, std::function< void()> waitFunctor, MPI_Comm communicator) |
Alternative to the other send() where I trigger a non-blocking send an then invoke the functor until the corresponding MPI_Test tells me that the message went through. | |
static void | receive (peano4::grid::GridStatistics &buffer, int source, int tag, std::function< void()> startCommunicationFunctor, std::function< void()> waitFunctor, MPI_Comm communicator) |
static void | sendAndPollDanglingMessages (const peano4::grid::GridStatistics &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator()) |
static void | receiveAndPollDanglingMessages (peano4::grid::GridStatistics &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator()) |
Static Private Attributes | |
static MPI_Datatype | Datatype = MPI_DATATYPE_NULL |
Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype. | |
Definition at line 33 of file GridStatistics.h.
Enumerator | |
---|---|
NoData |
Definition at line 134 of file GridStatistics.h.
peano4::grid::GridStatistics::GridStatistics | ( | ) |
Definition at line 35 of file GridStatistics.h.
peano4::grid::GridStatistics::GridStatistics | ( | int | __numberOfLocalUnrefinedCells, |
int | __numberOfRemoteUnrefinedCells, | ||
int | __numberOfLocalRefinedCells, | ||
int | __numberOfRemoteRefinedCells, | ||
int | __stationarySweeps, | ||
bool | __coarseningHasBeenVetoed, | ||
bool | __removedEmptySubtree, | ||
tarch::la::Vector< Dimensions, double > | __minH ) |
Definition at line 6 of file GridStatistics.cpp.
References setCoarseningHasBeenVetoed(), setMinH(), setNumberOfLocalRefinedCells(), setNumberOfLocalUnrefinedCells(), setNumberOfRemoteRefinedCells(), setNumberOfRemoteUnrefinedCells(), setRemovedEmptySubtree(), and setStationarySweeps().
|
default |
peano4::grid::GridStatistics::GridStatistics | ( | ObjectConstruction | ) |
Definition at line 138 of file GridStatistics.h.
|
static |
Definition at line 177 of file GridStatistics.cpp.
|
static |
Definition at line 150 of file GridStatistics.cpp.
|
static |
Definition at line 159 of file GridStatistics.cpp.
|
static |
Definition at line 168 of file GridStatistics.cpp.
|
static |
Definition at line 186 of file GridStatistics.cpp.
|
static |
Definition at line 139 of file GridStatistics.cpp.
bool peano4::grid::GridStatistics::getCoarseningHasBeenVetoed | ( | ) | const |
Definition at line 79 of file GridStatistics.cpp.
Referenced by peano4::parallel::SpacetreeSet::cleanUpTrees(), and operator+().
|
static |
Hands out MPI datatype if we work without the LLVM MPI extension.
If we work with this additional feature, this is the routine where the lazy initialisation is done and the datatype is also cached.
Definition at line 124 of file GridStatistics.cpp.
|
static |
Definition at line 129 of file GridStatistics.cpp.
|
static |
Definition at line 134 of file GridStatistics.cpp.
tarch::la::Vector< Dimensions, double > peano4::grid::GridStatistics::getMinH | ( | ) | const |
Definition at line 95 of file GridStatistics.cpp.
Referenced by swift2::timestepping::computeAdmissibleTimeStepSizeFromGlobalMeshSizeAndMaximumVelocity(), operator+(), and selectNextAlgorithmicStep().
Definition at line 103 of file GridStatistics.cpp.
|
static |
Definition at line 144 of file GridStatistics.cpp.
int peano4::grid::GridStatistics::getNumberOfLocalRefinedCells | ( | ) | const |
Definition at line 55 of file GridStatistics.cpp.
Referenced by operator+().
int peano4::grid::GridStatistics::getNumberOfLocalUnrefinedCells | ( | ) | const |
Definition at line 39 of file GridStatistics.cpp.
Referenced by toolbox::loadbalancing::strategies::SplitOversizedTree::computeNumberOfSplits(), toolbox::loadbalancing::dumpStatistics(), toolbox::loadbalancing::metrics::CellCount::getCostOfLocalTree(), toolbox::loadbalancing::AbstractLoadBalancing::getIdOfHeaviestLocalSpacetree(), toolbox::loadbalancing::AbstractLoadBalancing::getIdOfHeaviestLocalSpacetree(), toolbox::loadbalancing::getWeightOfHeaviestLocalSpacetree(), operator+(), runParallel(), toolbox::loadbalancing::Blacklist::update(), updateDomainDecomposition(), toolbox::loadbalancing::Statistics::updateGlobalView(), and toolbox::loadbalancing::metrics::CellCount::updateGlobalView().
int peano4::grid::GridStatistics::getNumberOfRemoteRefinedCells | ( | ) | const |
Definition at line 63 of file GridStatistics.cpp.
Referenced by operator+().
int peano4::grid::GridStatistics::getNumberOfRemoteUnrefinedCells | ( | ) | const |
Definition at line 47 of file GridStatistics.cpp.
Referenced by toolbox::loadbalancing::dumpStatistics(), and operator+().
bool peano4::grid::GridStatistics::getRemovedEmptySubtree | ( | ) | const |
Definition at line 87 of file GridStatistics.cpp.
Referenced by operator+(), and toolbox::loadbalancing::Blacklist::update().
int peano4::grid::GridStatistics::getSenderRank | ( | ) | const |
Definition at line 194 of file GridStatistics.cpp.
int peano4::grid::GridStatistics::getStationarySweeps | ( | ) | const |
Definition at line 71 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), operator+(), and selectNextAlgorithmicStep().
|
static |
Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.
Definition at line 198 of file GridStatistics.cpp.
Referenced by peano4::parallel::Node::initMPIDatatypes().
|
static |
Definition at line 311 of file GridStatistics.cpp.
References _senderDestinationRank.
Referenced by receiveAndPollDanglingMessages().
|
static |
Definition at line 336 of file GridStatistics.cpp.
References _senderDestinationRank.
|
static |
Definition at line 376 of file GridStatistics.cpp.
References tarch::mpi::Rank::getInstance(), tarch::services::ServiceRepository::getInstance(), receive(), tarch::services::ServiceRepository::receiveDanglingMessages(), tarch::mpi::Rank::setDeadlockTimeOutTimeStamp(), tarch::mpi::Rank::setDeadlockWarningTimeStamp(), tarch::mpi::Rank::triggerDeadlockTimeOut(), and tarch::mpi::Rank::writeTimeOutWarning().
|
static |
In DaStGen (the first version), I had a non-static version of the send as well as the receive.
However, this did not work with newer C++11 versions, as a member function using this as pointer usually doesn't see the vtable while the init sees the object from outside, i.e. including a vtable. So this routine now is basically an alias for a blocking MPI_Send.
Definition at line 307 of file GridStatistics.cpp.
Referenced by sendAndPollDanglingMessages().
|
static |
Alternative to the other send() where I trigger a non-blocking send an then invoke the functor until the corresponding MPI_Test tells me that the message went through.
In systems with heavy MPI usage, this can help to avoid deadlocks.
Definition at line 317 of file GridStatistics.cpp.
|
static |
Definition at line 359 of file GridStatistics.cpp.
References tarch::mpi::Rank::getInstance(), tarch::services::ServiceRepository::getInstance(), tarch::services::ServiceRepository::receiveDanglingMessages(), send(), tarch::mpi::Rank::setDeadlockTimeOutTimeStamp(), tarch::mpi::Rank::setDeadlockWarningTimeStamp(), tarch::mpi::Rank::triggerDeadlockTimeOut(), and tarch::mpi::Rank::writeTimeOutWarning().
Definition at line 83 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), and GridStatistics().
void peano4::grid::GridStatistics::setMinH | ( | const tarch::la::Vector< Dimensions, double > & | value | ) |
Definition at line 99 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), and GridStatistics().
Definition at line 107 of file GridStatistics.cpp.
Definition at line 59 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), and GridStatistics().
Definition at line 43 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), and GridStatistics().
Definition at line 67 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), and GridStatistics().
Definition at line 51 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), and GridStatistics().
Definition at line 91 of file GridStatistics.cpp.
Referenced by peano4::parallel::SpacetreeSet::cleanUpTrees(), peano4::grid::clear(), and GridStatistics().
Definition at line 75 of file GridStatistics.cpp.
Referenced by peano4::grid::clear(), GridStatistics(), peano4::grid::Spacetree::Spacetree(), and peano4::grid::Spacetree::Spacetree().
|
static |
Free the underlying MPI datatype.
Definition at line 294 of file GridStatistics.cpp.
Referenced by peano4::parallel::Node::shutdownMPIDatatypes().
std::string peano4::grid::GridStatistics::toString | ( | ) | const |
Definition at line 17 of file GridStatistics.cpp.
Referenced by peano4::parallel::SpacetreeSet::getGridStatistics().
|
private |
Definition at line 155 of file GridStatistics.h.
|
private |
Definition at line 157 of file GridStatistics.h.
|
private |
Definition at line 152 of file GridStatistics.h.
|
private |
Definition at line 150 of file GridStatistics.h.
|
private |
Definition at line 153 of file GridStatistics.h.
|
private |
Definition at line 151 of file GridStatistics.h.
|
private |
Definition at line 156 of file GridStatistics.h.
|
private |
Definition at line 161 of file GridStatistics.h.
|
private |
Definition at line 154 of file GridStatistics.h.
|
staticprivate |
Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.
However, Peano calls init explicitly in most cases. Without the LLVM extension which caches the MPI datatype once constructed, this field stores the type.
Definition at line 170 of file GridStatistics.h.