AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Abstract base class defining the interface of all Communicator classes. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.3.3/src/axom/lumberjack/Communicator.hpp>
Public Member Functions | |
virtual | ~Communicator () |
Virtual destructor. More... | |
virtual void | initialize (MPI_Comm comm, int ranksLimit)=0 |
Called to initialize the Communicator. More... | |
virtual void | finalize ()=0 |
Called to finalize the Communicator. More... | |
virtual int | rank ()=0 |
Returns the MPI rank of this node. More... | |
virtual void | ranksLimit (int value)=0 |
Sets the rank limit. More... | |
virtual int | ranksLimit ()=0 |
Returns the rank limit. More... | |
virtual int | numPushesToFlush ()=0 |
Function used by the Lumberjack class to indicate how many individual pushes fully flush all currently held Message classes to the root node. The Communicator class's tree structure dictates this. More... | |
virtual void | push (const char *packedMessagesToBeSent, std::vector< const char *> &receivedPackedMessages)=0 |
This pushes all messages once up the Communicator class's tree structure. More... | |
virtual bool | isOutputNode ()=0 |
Function indicates whether this node should be outputting messages. The Communicator class's communication structure dictates this. More... | |
Abstract base class defining the interface of all Communicator classes.
Concrete instances need to inherit from this class and implement these functions.You will need to add your Communicator using Lumberjack::initialize
|
inlinevirtual |
Virtual destructor.
References finalize(), initialize(), isOutputNode(), numPushesToFlush(), push(), rank(), and ranksLimit().
|
pure virtual |
Called to initialize the Communicator.
This performs any setup work the Communicator needs before doing any work. It is required that this is called before using the Communicator.
[in] | comm | The MPI communicator |
[in] | ranksLimit | Limit on how many ranks are individually tracked per Message. |
Implemented in axom::lumberjack::RootCommunicator, and axom::lumberjack::BinaryTreeCommunicator.
Referenced by ~Communicator().
|
pure virtual |
Called to finalize the Communicator.
This performs any cleanup work the Communicator needs to do before going away.It is required that this is the last function called by the Communicator.
Implemented in axom::lumberjack::RootCommunicator, and axom::lumberjack::BinaryTreeCommunicator.
Referenced by ~Communicator().
|
pure virtual |
Returns the MPI rank of this node.
Implemented in axom::lumberjack::RootCommunicator, and axom::lumberjack::BinaryTreeCommunicator.
Referenced by ~Communicator().
|
pure virtual |
Sets the rank limit.
[in] | value | Limit the ranks to individually track per Message. |
This is the limit on how many ranks generated a given message are individually tracked per Message. After the limit has been reached, only the Message::rankCount is incremented.
Implemented in axom::lumberjack::RootCommunicator, and axom::lumberjack::BinaryTreeCommunicator.
|
pure virtual |
Returns the rank limit.
This is the limit on how many ranks generated a given message are individually tracked per Message. After the limit has been reached, only the Message::rankCount is incremented.
Implemented in axom::lumberjack::RootCommunicator, and axom::lumberjack::BinaryTreeCommunicator.
Referenced by ~Communicator().
|
pure virtual |
Function used by the Lumberjack class to indicate how many individual pushes fully flush all currently held Message classes to the root node. The Communicator class's tree structure dictates this.
Implemented in axom::lumberjack::RootCommunicator, and axom::lumberjack::BinaryTreeCommunicator.
Referenced by ~Communicator().
|
pure virtual |
This pushes all messages once up the Communicator class's tree structure.
[in] | packedMessagesToBeSent | All of this rank's Message classes packed into a single buffer. |
[in,out] | receivedPackedMessages | Received packed message buffers from this nodes children. |
All of the children push their Message classes to their parent node. This is is helpful if you want to spread the work load of Lumberjack over a large set of work.
Implemented in axom::lumberjack::BinaryTreeCommunicator, and axom::lumberjack::RootCommunicator.
Referenced by ~Communicator().
|
pure virtual |
Function indicates whether this node should be outputting messages. The Communicator class's communication structure dictates this.
Implemented in axom::lumberjack::BinaryTreeCommunicator, and axom::lumberjack::RootCommunicator.
Referenced by ~Communicator().