HP SVA V2.1 Parallel Compositing Reference Guide
To run the hello-depth and hello-alpha samples, you must be logged into a node on which
X is running. These examples display in a window on that X desktop and take advantage of one
or more additional rendering nodes.
Assume your SVA cluster has five nodes n[1-5]. You decide to use n5 as your desktop and
use three render nodes to run either of the samples. Use a command such as sva_remote.sh,
which allocates node n5, starts an X server, logs in to node n5, and runs the sample using the
corresponding script. For example, to run the hello-depth sample, use a command such as
the following:
$ ./demo-depth.sh –r 3
Intermediate Set of Samples
The /opt/paracomp/samples/intermediate directory contains programs which help
demonstrate more features of the Library. It contains source files, a Makefile to build all samples,
and scripts to run the programs on an SVA cluster.
interactive Sample
The hello-depth sample illustrates depth compositing of a set of cubes — one drawn by each
host. User interaction with the sample is limited to stopping the program and re-sizing the display
window. In the interactive sample, more user interaction is available to support rotating,
panning, and zooming the image using the left mouse button.
This adds some complexity to the application. It is now necessary that all hosts rotate, pan, and
zoom in a coordinated way. This information is gathered by the master and communicated to
the slaves using network sockets.
Here is how to control the program:
How ToAction
Hold MB1 and drag.Rotate the model.
Press the SHIFT key and drag with MB1.Pan.
Press the CTRL key and drag with MB1.Zoom.
Press the ESC key.Exit.
The sample (like all samples in this directory) is written in C++. The
/opt/paracomp/samples/intermediate/support directory supplies classes for socket
communication, trackball functionality, and computing frame rate.
boundingbox Sample
In the interactive sample, all framelets and outputs are the same dimensions as the frame.
If this window were 1000 x 1000 pixels, the Library would transfer 1,000,000 pixels per frame
among the hosts. This is despite the fact that much of the 1000 x 1000 framelet is blank.
In the boundingbox sample, each host determines the area on the frame where it actually has
drawn pixels. It calculates the rectangular region where it has drawn (known as a bounding box)
and uses this rectangle as the framelet. This dramatically reduces the amount of information
transferred among the hosts and by so doing, greatly improves performance.
The sample introduces several new features. This is the first time framelet size is not dictated by
the frame size. The HP implementation supports framelets being different dimensions.
The sample also uses the pcFrameWaitOutputHP function, which is part of the
HP_frame_output extension. Using this function for collecting output, an application gets
output when the Library has some output ready. It also means the program does not need to
18 Main Areas of the Parallel Compositing Library