Introduction
Chromium and Equalizer solve a similar problem by enabling applications to use multiple GPU's, but have quite disjunct use cases and characteristics.
In one sentence: You want to use Chromium if you want to run an unmodified application on a display wall or similar setup, and you want to use Equalizer if you want scalability, flexibility and compatibility.
This document has been reviewed by one of the Chromium developers.
Typical Use Case
Chromium can be used as a transparent solution as well as a tool to develop parallel OpenGL applications. Most often it is used and perceived as a transparent solution to run unmodified applications. Equalizer's focus on the other hand is to create parallel applications. The following table outlines the differences between the two scenarios:
Transparent Layer: Chromium | Parallel API: Equalizer |
---|---|
runs unmodified applications | minimally invasive API: application has to be adapted |
focus on transparency for applications | focus on parallel rendering performance and scalability |
operates on OpenGL command stream | parallelizes application |
single application rendering thread | multithreaded and potentially distributed application |
mostly used for rendering to multiple, planar displays, immersive installations may require application changes | multi-display and immersive installations, many-to-one scalable rendering |
limited OpenGL extension support and compatiblity | full OpenGL compatiblity: does not interfere with OpenGL rendering code |
Parallel Programming Interface
It is also possible to write parallel, scalable applications with Chromium. Parallel Chromium applications can have similar functionality as Equalizer applications, but usually at a higher implementation overhead.
Chromium | Equalizer |
---|---|
parallel OpenGL extension, used by application for synchronization | parallel GLUT-like execution framework, inherent synchronization |
sort-last compositing SPU | generic compositing engine allowing sort-first, parallel sort-last and stereo compositing |
Python configuration scripts, not transparent for parallel applications | Externalized configuration: flexible text files |
? | distributed, versioned objects, message passing |
See also Comparison matrix to competing approaches on the Chromium website.
Closing Remarks
Please note that most other multipipe rendering software toolkits fall into the same category as Chromium, by distributing the OpenGL command stream. The Analysis of Parallel Rendering Systems white paper gives more background on the subject. The wikipedia article on Chromium gives a good overview as well.