Communicator Class

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.

Functions

Name

Description

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.

Concrete Instances

BinaryTreeCommunicator

Note

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.

RootCommunicator

Note

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.