The High-Resolution Visualization and Animation Group has developed several software systems that are used on The Wall. It also uses some "off the shelf" software.
In the OpenGL/MPI approach, each computer in the network processes the entire "world" and displays either the entire "world" or a portion of the world. The synchronization process involves: a master timer callback followed by an update of the world data, followed by a "frame update" message, followed by an MPI "barrier", followed by a return to OpenGL.
This approach requires very little communication and most of the processing time is devoted to rendering. As a result, the video cards are the main bottleneck.
Xavier On Rails (XOR) is an object-oriented visualization and animation system that can be used either on an individual computer or network of computers. In XOR, each object is responsible for itself. That is, each object controls its own state and its own rendering.
When run on a network of computers, XOR does not provide support for strong synchronization. This has not proven to be a problem for most applications.
Moxaic is a distributed, ultra-high resolution visualization system written in Java. It was designed to allow students in introductory programming courses to write graphics applications that would run on a network if computers.
A Moxaic application is virtually indistinguishable from an ordinary graphical application written in Java except that the rendering engine has access to a very large display space. The Moxaic system partitions the graphics calls and distributes them to the appropriate machines.
The book The Design and Implementation of Multimedia Software develops a system that makes it easy to create multimedia applications in Java. The High-Resolution Visualization and Animation Group has developed a version of this system that runs on a network of computers.
The VLC Media Player is a flexible multimedia player. The High-Reolution Visualization and Animation group uses it in its "server to stream" mode to create a VideoLAN. In this configureation, the master node transmits frames of video (using UDP) to the presentation nodes. Since the system uses GB ethernet, synchronzation is not a problem.
Chromium provides a programming interface for use with clusters of graphics workstations. It is an extension of WireGL. Because Chromium's graphics pipeline is based on OpenGL, many single-display applications written for OpenGL can be used without modification.
|
|