Cluster -- Cluster Abstraction Library
The Cluster library contains classes supporting cluster programming by providing a multicast-based intra-cluster communications mechanism, and derived cluster-transparent versions of file and pipe abstraction classes provided by the IO and Comm libraries.
Header Files
- Config.h
- Config.h defines configuration-dependent macros used by the Cluster library. It should be included by client code that wants to make decisions based on the availability of optional features.
- Packet.h
- Packet is a structure for the data and protocol packets sent and received by a cluster multiplexer to implement intra-cluster communication.
- GatherOperation.h
- Defines opcodes for available intra-cluster accumulation operations using the Multiplexer::gather method.
- Multiplexer.h
- Multiplexer is a class mapping several intra-cluster multicast data streams to a single UDP multicast socket. It supports dynamic creation/destruction of multicast data streams, and adds reliable transmissions to the underlying UDP multicast protocol.
- ClusterPipe.h
- ClusterPipe is a support class to implement intra-cluster communication pipes. ClusterPipe provides pipe management and barrier and gather operations.
- MulticastPipe.h
- MulticastPipe is a class derived from IO::File and Cluster::ClusterPipe representing a data stream between a single sender and multiple receivers in a multiplexed cluster environment.
- ThreadSynchronizer
- ThreadSynchronizer is a helper class ensuring that thread IDs stay consistent across a cluster even when different code paths are executed on each node. Uses RAII to synchronize thread IDs upon object destruction.
- Clusterize
- Clusterize.h contains helper functions to distribute an application across a cluster, and establish communication between node instances via a multiplexer.
- StandardFile.h
- StandardFile is a pair of classes derived from IO::SeekableFile to represent cluster-forwarded standard operating system files.
- StandardDirectory.h
- StandardDirectory is a concrete class derived from IO::Directory to read standard filesystem directories in a cluster-transparent fashion.
- OpenFile.h
- OpenFile.h declares convenience functions to open files in a cluster-transparent fashion.
- TCPPipe.h
- TCPPipe is a pair of classes derived from Comm::NetPipe to represent cluster-forwarded TCP sockets connected to remote hosts.
- OpenPipe.h
- OpenPipe.h declares convenience functions to open pipes in a cluster-transparent fashion.