Visualization Wall Software
Contents:
Disclaimer
The software on this page is not warranted to have any practical use
whatsoever. It is not pretty, it is not fully de-bugged, and it is not
the best solution available. It is considered "good enough" around here
- at least until some annoyance crops up and it gets re-written,
by-passed, or tossed. Use at your own risk.
General Software
The master, visualization, and compute nodes run Red Hat Enterprise
Linux 4 with updates. A few of the important package versions for
working with the Viz Wall are:
- gcc 3.4.6
- glibc 2.3.4
- perl 5.8.5
- python 2.3.4
- ImageMagick 6.0.7.1
- gimp 2.0.5
The image viewing program "xv" is not free, so Red Hat does not
include it in its distribution. The program is quite useful, and version
3.10a is used in the image display scripts below.
Although the ImageMagick tools can do all sorts of image manipulations,
libtiff contains some excellent TIFF image manipulation tools. Pixar has
their own versions of these tools that are distributed with their
PhotoRealistic Renderman software, and have a few extra options I like.
For manipulating TIFF images, these tools can run many times faster for
large images than using ImageMagick commands.
Cluster and Monitor Control
The nodes of the cluster are connected on a private cluster network, and
use rsh and rsync for password-less communication and file transfer.
This practice is generally abhorred by security experts and one would
never do this over an open network, but is relatively common for
clusters. For clusters with other communication standards, adjust
accordingly.
A note about node numbering. The nodes of are numbered using three
digits. The head node is wall000, while the visualization nodes are
wall001 - wall016.
In order to access the X server on each node, one has to have the proper
authorization. When Red Hat boots to a graphical login prompt, it is
running gdm. The X authorization file for gdm can be found in
/var/gdm/:0.Xauth on each machine. One needs to extract this
authorization and add it to the wall user's Xauthority file.
Assuming home directories from the master are NFS mounted on the nodes,
the following perl script can be adapted and run by root on the master.
Once you have X authority, you can control the screens remotely.
Turning the screens on and off uses the "xset" command to control
the dpms features. The following perl script can be used to turn
all the screens on and off.
One annoyance is that the screensaver may be set, and the displays
will start to go black in the middle of a demo. The perl script below
again uses xset to turn off the screensaver. There are vague
recollections that if dpms is in the wrong state, the screensaver
doesn't get turned off. If one uses "wall_monitors.pl off",
"wall_monitors.pl on" first, then the screensaver most definitely gets
turned off.
Another annoyance is that the mouse cursor can float atop the graphics
one is showing. A simplistic solution is to use the program
"x2x" to one monitor
and shadow the rest of the wall monitors. One then controls the mouse on
all the displays and can drag it to a corner. For some silly reason,
demo viewers seem to think its cool to control 16 mouse cursors at once.
For this and other stupid x2x tricks, an alias to a command something
like the following is useful.
- x2x -to wall001:0.0 -west -shadow wall002:0.0 -shadow wall003:0.0 -shadow wall004:0.0 -shadow wall005:0.0 -shadow wall006:0.0 -shadow wall007:0.0 -shadow wall008:0.0 -shadow wall009:0.0 -shadow wall010:0.0 -shadow wall011:0.0 -shadow wall012:0.0 -shadow wall013:0.0 -shadow wall014:0.0 -shadow wall015:0.0 -shadow wall016:0.0
Image Display
- Image Viewing Perl Scripts
The initial software to view high resolution images on the Viz Wall are
just some perl scripts I wrote. They rely on the ImageMagick tools and
on the image display program xv.
TO DO: Add some details of how I use the above codes.
Movie Display
- Chromium
Chromium is an open source toolkit for doing visualization on display walls.
Chromium is not a visualization program per se, but it supplies all
the tools you need to get an OpenGL application up and running on
a visualization wall without doing the parallelization coding yourself.
-
NCSA Pixel Blaster (NPB)
NPB (download)
is a movie player application for visualization display walls. It
was written to use the WireGL libraries (an earlier incarnation of Chromium),
but can be easily adapted to Chromium. The only problem is in the set-up for
using distributed textures. Here are the modifications I made (in addition
to the standard set-up):
- Makefile - uncomment the line "CFLAGS += -DUSE_WGL_MODS"
- Makefile - do not uncomment the line "#INCS += -I/u/src/wiregl/src/wiregl-1.2/wiregl/include"
- npbMain.cxx - comment out the line "//#include "wiregl_const.h""
- npbMain.cxx - comment out the line "// glHint(WIREGL_DISTRIBUTED_TEXTURE_HINT, GL_TRUE);"
NPB / Chromium config files
TO DO: Add some details of how I use the above codes.
Page last updated on: June 4, 2004