33 void setId(
int value);
45 [[clang::map_mpi_datatype]]
48 [[clang::map_mpi_datatype]]
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]]
109 static void send(
const peano4::parallel::TreeEntry& buffer,
int destination,
int tag, std::function<
void()> startCommunicationFunctor, std::function<
void()> waitFunctor, MPI_Comm communicator );
110 static void receive(
peano4::parallel::TreeEntry& buffer,
int source,
int tag, std::function<
void()> startCommunicationFunctor, std::function<
void()> waitFunctor, MPI_Comm communicator );
130 [[clang::pack_range(0,std::numeric_limits<int>::max())]]
int _id;
131 [[clang::pack_range(-1,std::numeric_limits<int>::max())]]
int _master;
137 #if !defined(__MPI_ATTRIBUTES_LANGUAGE_EXTENSION__)
static void freeBoundaryExchangeDatatype()
static MPI_Datatype getForkDatatype()
Hands out MPI datatype if we work without the LLVM MPI extension.
int _senderDestinationRank
TreeEntry(const TreeEntry ©)=default
static void initDatatype()
Wrapper around getDatatype() to trigger lazy evaluation if we use the lazy initialisation.
static void sendAndPollDanglingMessages(const peano4::parallel::TreeEntry &message, int destination, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
static MPI_Datatype getGlobalCommunciationDatatype()
static void receiveAndPollDanglingMessages(peano4::parallel::TreeEntry &message, int source, int tag, MPI_Comm communicator=tarch::mpi::Rank::getInstance().getCommunicator())
static void freeMultiscaleDataExchangeDatatype()
static void shutdownDatatype()
Free the underlying MPI datatype.
std::string toString() const
void setMaster(int value)
static MPI_Datatype getBoundaryExchangeDatatype()
int getSenderRank() const
static MPI_Datatype getMultiscaleDataExchangeDatatype()
TreeEntry(ObjectConstruction)
static void freeForkDatatype()
static void send(const peano4::parallel::TreeEntry &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 Datatype
Whenever we use LLVM's MPI extension (DaStGe), we rely on lazy initialisation of the datatype.
static MPI_Datatype getJoinDatatype()
static void freeJoinDatatype()
static void receive(peano4::parallel::TreeEntry &buffer, int source, int tag, MPI_Comm communicator)
static void freeGlobalCommunciationDatatype()