tinySceneGraph Home Images Contact

tinyScenegraph driving clusters

Friends of tinySG,

Laptop cluster like most scene graphs, tinySG has no inherent support for distributed rendering in a cluster environment. However, there are two distinct network layers operating on top of tinySG: eqcsg, based on the Equalizer (TM) server and tsgmpi, a peer to peer implementation on the foundation of the message passing interface (MPI). Both layers have strengths and weaknesses and come in separate libraries with dependencies to the tinySG core renderer and Equalizer or MPI, respectively. The image to the right shows a "mobile cluster" of two nodes, running tsgEdit on Windows XP as the control host and a Linux render slave displaying the same view in anaglyph stereo.

eqcsg strongly benefits from Equalizers feature richness, most importantly

  • Driving multi-screen display walls from clustered nodes or multi-pipe machines (a dual GPU machine with ATI's EyeFinity could drive up to 12 displays/projectors).
  • Utilise multi-GPU systems to speed up rendering on a single display device, similar to what Crossfire or SLI does, but maximising performance by using render domain knowledge.
  • Scalable OpenGL rendering using Stereo-, Screenspace- and DPLEX-decomposition. The decomposition schemes may be combined in a hierarchy to e.g. concentrate the power of eight GPUs on four projectors driving a two-segment passive-stereo wall.
  • Drive tracked installations, like Caves or L-shaped walls.
  • Support for Ethernet and Infiniband hardware.

Laptop cluster Each cluster is configured using a single ASCII configuration file. tinySG makes the setup relatively easy as it comes with a 3D cluster configurator: Connecting hosts to one another, GPUs to projectors or splitting work load amongst available resources is as easy as plugging cables to their physical counterparts. Each physical entity is modeled in a 3D representation the user can navigate through. Connections are established by a drag 'n drop interface in the scene, animations show the data flow through the cluster network. This way it is easy to see which GPU drives which projector, which machine has unused resources that may support other resources, etc. See the image on the left to get an impression of the data flow in a 4-host, 6-GPU, 3-segment cluster configuration.

Unfortunately, the tremendous flexibility of Equalizer introduces some complexity to the configuration of a cluster. For example, controlling a multi-projector display wall requires information on the wall dimensions, it's segmentation into projection areas, and on hosts/GPUs driving the projectors or panels. eqcsg's configurator addresses this issue by providing context sensitive configuration tabs on the right dialog side, as shown below. Picking into the 3D view of the projection system will select either host or wall in the corresponding list and show it's properties in the info/settings area.

Wall definition Pipe Definition Window Definition Channel Definition
From left to right: Configuration tabs for walls, GPUs, windows and channels (render areas inside a window).

In order to ease the creation of alternative configurations, both the wall definitions and the cluster machines may be saved to separate files for later reuse.

exporter Once a setup is completed, it may be saved in a neutral format or exported for use with the different cluster layers of tinySG. A special option is to create a testcard pattern optimised for the given setup: This option creates a tinySG scene with regular, real-world sized grids and circles that can be loaded into a cluster session, allowing for measurements of projection distortions, blending areas or aspect ratio with a ruler on the physical wall.

Keep rendering,
Christian






Copyright by Christian Marten, 2009-2014
Last change: 22.08.2011