tinyScenegraph driving clustersFriends of tinySG, 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
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.
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.
|