|
AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Classes | |
| class | BinaryTreeCommunicator |
| A Communicator that utilizes a binary tree stucture of MPI nodes to scalably pass Message classes. More... | |
| class | Combiner |
| Abstract base class defining the interface of all Combiner classes. More... | |
| class | Communicator |
| Abstract base class defining the interface of all Communicator classes. More... | |
| class | LineFileTagCombiner |
| Combines Message classes if their Message::fileName, Message::lineNumer, and Message::tag are equal. More... | |
| class | Lumberjack |
| Class that all user interactions with Lumberjack are through. More... | |
| class | Message |
| Holds information about messages and where they came from. More... | |
| class | NonCollectiveRootCommunicator |
| Based off of RootCommunicator. This communicator pushes messages from any rank to root non-collectively, if any messages are sent. More... | |
| class | RootCommunicator |
| A Communicator that all MPI nodes communicate with the root node. This class does NOT scale and is provided for demonstration purposes only. More... | |
| class | TextEqualityCombiner |
| Combines Message classes if their Message::text are equal. More... | |
| class | TextTagCombiner |
| Combines Message classes if their Message::text and Message::tag are equal. More... | |
Functions | |
| const char * | packMessages (const std::vector< Message * > &messages) |
| This packs all given Message classes into one const char buffer. More... | |
| void | unpackMessages (std::vector< Message * > &messages, const char *packedMessages, const int ranksLimit) |
| This unpacks the given const char buffer and adds the created Messages classes to the given vector. More... | |
| bool | isPackedMessagesEmpty (const char *packedMessages) |
| This checks if a given set of packed messages is empty. More... | |
| const char * | mpiBlockingReceiveMessages (MPI_Comm comm) |
| Receives any Message sent to this rank. Returns null if terminating message is sent. Caller is responsible for deallocating memory returned from this function. More... | |
| const char * | mpiBlockingReceiveIfMessagesExist (MPI_Comm comm) |
| Receives any Message sent to this rank, if there are any messages that have arrived. Returns null if no messages have arrived. Caller is responsible for deallocating memory returned from this function. More... | |
| void | mpiNonBlockingSendMessages (MPI_Comm comm, int destinationRank, const char *packedMessagesToBeSent) |
| Sends all Message sent to the given rank. More... | |
Variables | |
| const char *const | zeroMessage |
| Message indicating no messages need to be sent from child node. More... | |
| const char | memberDelimiter = '*' |
| Delimiter used for packing messages and separating their members. More... | |
| const char | rankDelimiter = ',' |
| Delimiter used for packing messages and separating their individual tracked ranks. More... | |
| const char* axom::lumberjack::packMessages | ( | const std::vector< Message * > & | messages | ) |
This packs all given Message classes into one const char buffer.
The messages are packed into the following format: <message count>[*<packed message size>*<packed message>]... This function does not alter the messages vector.
| [in] | messages | Message classes to be packed for sending |
| void axom::lumberjack::unpackMessages | ( | std::vector< Message * > & | messages, |
| const char * | packedMessages, | ||
| const int | ranksLimit | ||
| ) |
This unpacks the given const char buffer and adds the created Messages classes to the given vector.
The messages are packed into the following format: <message count>[*<packed message size>*<packed message>]... This function only adds to the messages vector and does not alter the packagedMessages parameter.
| [in,out] | messages | Vector to append created messages to |
| [in] | packedMessages | Packed messages to be unpacked |
| [in] | ranksLimit | Limits how many ranks are tracked per Message. |
|
inline |
This checks if a given set of packed messages is empty.
| [in] | packedMessages | Packed messages to be checked for empty. |
References zeroMessage.
| const char* axom::lumberjack::mpiBlockingReceiveMessages | ( | MPI_Comm | comm | ) |
Receives any Message sent to this rank. Returns null if terminating message is sent. Caller is responsible for deallocating memory returned from this function.
| [in] | comm | The MPI Communicator. |
| const char* axom::lumberjack::mpiBlockingReceiveIfMessagesExist | ( | MPI_Comm | comm | ) |
Receives any Message sent to this rank, if there are any messages that have arrived. Returns null if no messages have arrived. Caller is responsible for deallocating memory returned from this function.
| [in] | comm | The MPI Communicator. |
| [in] | tag | The MPI tag to use for communication. When set to zero, MPI communication uses default LJ_Tag. |
| void axom::lumberjack::mpiNonBlockingSendMessages | ( | MPI_Comm | comm, |
| int | destinationRank, | ||
| const char * | packedMessagesToBeSent | ||
| ) |
Sends all Message sent to the given rank.
Clears and deletes all Message classes when done.
| [in] | comm | The MPI Communicator. |
| [in] | destinationRank | Where the Message classes is being sent. |
| [in,out] | packedMessagesToBeSent | All of the Message classes to be sent packed together. |
| [in] | tag | The MPI tag to use for communication. When set to zero, MPI communication uses the default Lumberjack Tag. |
|
extern |
Message indicating no messages need to be sent from child node.
| const char axom::lumberjack::memberDelimiter = '*' |
Delimiter used for packing messages and separating their members.
| const char axom::lumberjack::rankDelimiter = ',' |
Delimiter used for packing messages and separating their individual tracked ranks.