23 struct StartTraversalMessage;
43 [[clang::map_mpi_datatype]]
46 [[clang::map_mpi_datatype]]
49 [[clang::map_mpi_datatype]]
52 [[clang::map_mpi_datatype]]
55 [[clang::map_mpi_datatype]]
58 [[clang::map_mpi_datatype]]
61 [[clang::map_mpi_datatype]]
64 [[clang::map_mpi_datatype]]
67 [[clang::map_mpi_datatype]]
70 [[clang::map_mpi_datatype]]
134 #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 receiveAndPollDanglingMessages(peano4::parallel::StartTraversalMessage &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
static MPI_Datatype getBoundaryExchangeDatatype()
static void sendAndPollDanglingMessages(const peano4::parallel::StartTraversalMessage &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
static void shutdownDatatype()
Free the underlying MPI datatype.
static void freeForkDatatype()
StartTraversalMessage(const StartTraversalMessage ©)=default
int _senderDestinationRank
static void send(const peano4::parallel::StartTraversalMessage &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 MPI_Datatype getJoinDatatype()
std::string toString() const
static void freeGlobalCommunciationDatatype()
int getSenderRank() const
static void freeJoinDatatype()
StartTraversalMessage(ObjectConstruction)
static void freeMultiscaleDataExchangeDatatype()
int getStepIdentifier() const
static void initDatatype()
Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.
static void receive(peano4::parallel::StartTraversalMessage &buffer, int source, int tag, MPI_Comm communicator)
static MPI_Datatype Datatype
Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.
static MPI_Datatype getMultiscaleDataExchangeDatatype()
static void freeBoundaryExchangeDatatype()
static MPI_Datatype getForkDatatype()
Hands out MPI datatype if we work without the LLVM MPI extension.
static MPI_Datatype getGlobalCommunciationDatatype()
void setStepIdentifier(int value)