The Communicator class is an abstract base class that defines the interface for all Communicator classes. Concrete instances need to inherit from this class and implement these functions to be used when the Lumberjack class does any communication work.
|initialize||Starts up the Communicator. Must be called before anything else.|
|finalize||Cleans up the Communicator. Must be called when finished.|
|rank||Returns the rank of the current node.|
|ranksLimit||Getter/Setter for the limit on individually stored ranks.|
|numPushesToFlush||Returns the number of individual pushes to completely flush all Messages.|
|push||Pushes all currently held Messages once up structure.|
|isOutputNode||Returns whether this node should output messages.|
This is the recommended Communicator.
This Communicator uses a standard Binary Tree design to scalably pass Messages between nodes. Rank 0 is the root of the Binary Tree and the only node allowed to output messages. For each single push, the child nodes send their currently held messages to their parents without waiting to receive messages themselves. For a full push, this communicator takes the log of nodes to completely flush all currently held messages to the root node.
This Communicator is useful for debugging purposes, but will not scale as well as the recommended BinaryTreeCommunicator.
This Communicator has all nodes directly connecting to the root node which is rank 0. The root node is the only node allowed to output messages. Each single push, the child nodes send their currently held messages to the root. After each push the tree is completely flushed.