Skip to content
Cross-platform C++ library for building heterogenous, distributed applications
C++ Other
  1. C++ 98.4%
  2. Other 1.6%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
CMake
co
doc
tests
tools
.clang-format
.gitattributes
.gitignore
.gitmodules
.gitsubprojects
.travis.yml
CMakeLists.txt
CTestConfig.cmake
LGPL
LICENSE.txt
README.md
build.bat

README.md

Introduction

Collage is a cross-platform C++ library for building heterogenous, distributed applications. Among others, it is the cluster backend for the Equalizer parallel rendering framework. Collage provides an abstraction of different network connections, peer-to-peer messaging, node discovery, synchronization and high-performance, object-oriented, versioned data distribution. Collage is designed for low-overhead multi-threaded execution which allows applications to easily exploit multi-core architectures.

The API documentation can be found on eyescale.github.io. As with any open source project, the available source code, in particular the unit tests provide a reference for developing applications.

Technical questions can be posted to the Equalizer Developer Mailing List, or directly to info@equalizergraphics.com.

Commercial support, custom software development and porting services are available from Eyescale. Please contact info@eyescale.ch for further information.

Features

Collage provides different levels of abstraction to facilitate the development distributed applications:

  • Network Connections: stream-oriented point-to-point and reliable multicast connections for TCP/IP, InfiniBand RDMA, UDT, events, named and anonymous pipes, memory buffers and reliable multicast over UDP.
  • Peer-to-Peer Messaging: Endian-safe node-to-node message communication with thread-aware message dispatch.
  • Synchronization: Distributed barriers and synchronous messaging.
  • Object data distribution: high-performance, object-oriented, versioned data distribution for C++ objects based on delta serialization.
  • Detailed @ref Changelog

Building

Collage is a cross-platform library, designed to run on any modern operating system, including all Unix variants and the Windows operating system. It requires a C++11 compiler and uses CMake to create a platform-specific build environment. The following platforms and build environments are tested:

  • Linux: Ubuntu 16.04, RHEL 6.8 (Makefile, Ninja)
  • Windows: 7 (Visual Studio 2012)
  • Mac OS X: 10.9 (Makefile, Ninja)

Building from source is as simple as:

git clone --recursive https://github.com/Eyescale/Collage.git
mkdir Collage/build
cd Collage/build
cmake -GNinja .. -DCLONE_SUBPROJECTS=ON
ninja
You can’t perform that action at this time.