Collage is a cross-platform C++ library for building heterogenous, distributed applications. Among other things, it is the cluster backend for the Equalizer parallel rendering framework. It provides an abstraction of different network connections, peer-to-peer messaging, node discovery, synchronization, and high-performance, object-oriented, versioned data distribution. It is designed for low-overhead multi-threaded execution, which allows applications to easily exploit multi-core architectures.
Equalizer is middleware for creating and deploying parallel OpenGL-based applications. It enables applications to benefit from multiple graphics cards, processors, and computers to scale rendering performance, visual quality, and display size. An Equalizer-based application runs unmodified on any visualization system, from a simple workstation to large scale graphics clusters, multi-GPU workstations, and Virtual Reality installations.
libLunchbox facilitates the development and deployment of multi-threaded applications. It provides OS Abstraction, using utility classes abstracting common operating system features (such as threads, locks, memory maps, shared library loading, and condition variables), high-performance primitives (including thread-safe utilities tuned for performance, such as atomic variables, spin locks, and lock-free containers), and utility classes (including helper primitives which are not in the standard library, such as logging, pools, and random number generation).