23 struct TreeManagementMessage;
51 [[clang::map_mpi_datatype]]
54 [[clang::map_mpi_datatype]]
57 [[clang::map_mpi_datatype]]
60 [[clang::map_mpi_datatype]]
63 [[clang::map_mpi_datatype]]
66 [[clang::map_mpi_datatype]]
69 [[clang::map_mpi_datatype]]
72 [[clang::map_mpi_datatype]]
75 [[clang::map_mpi_datatype]]
78 [[clang::map_mpi_datatype]]
143 #if !defined(__MPI_ATTRIBUTES_LANGUAGE_EXTENSION__)
static Rank & getInstance()
This operation returns the singleton instance.
The parallel namespace is Peano's core abstracts from both MPI and multicore parallelisation.
static void receive(peano4::parallel::TreeManagementMessage &buffer, int source, int tag, std::function< void()> startCommunicationFunctor, std::function< void()> waitFunctor, MPI_Comm communicator)
static MPI_Datatype getJoinDatatype()
static void shutdownDatatype()
Free the underlying MPI datatype.
peano4::parallel::TreeManagementMessage::Action getAction() const
static MPI_Datatype getBoundaryExchangeDatatype()
static MPI_Datatype getGlobalCommunciationDatatype()
void setMasterSpacetreeId(int value)
static void freeJoinDatatype()
int getWorkerSpacetreeId() const
static void initDatatype()
Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.
static void receive(peano4::parallel::TreeManagementMessage &buffer, int source, int tag, MPI_Comm communicator)
static MPI_Datatype getMultiscaleDataExchangeDatatype()
static MPI_Datatype Datatype
Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.
static void freeGlobalCommunciationDatatype()
TreeManagementMessage(const TreeManagementMessage ©)=default
std::string toString() const
static void freeMultiscaleDataExchangeDatatype()
void setWorkerSpacetreeId(int value)
static void sendAndPollDanglingMessages(const peano4::parallel::TreeManagementMessage &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
static void freeBoundaryExchangeDatatype()
void setAction(Action value)
int _senderDestinationRank
static MPI_Datatype getForkDatatype()
Hands out MPI datatype if we work without the LLVM MPI extension.
static void send(const peano4::parallel::TreeManagementMessage &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.
@ RemoveChildTreeFromBooksAsChildBecameEmpty
int getMasterSpacetreeId() const
static void receiveAndPollDanglingMessages(peano4::parallel::TreeManagementMessage &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
TreeManagementMessage(ObjectConstruction)
int getSenderRank() const
TreeManagementMessage(int __masterSpacetreeId, int __workerSpacetreeId, Action __action)
static void send(const peano4::parallel::TreeManagementMessage &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 ...
static void freeForkDatatype()