PVR: The parallel volume rendering package

PVR in a nutshell

PVR Status

Currently under development (25,000+ lines of code). Have demonstrated the ability to render a 500 million voxel data set on the Intel Paragon using about 350 nodes -- once the data is loaded, a 120 frame animation can be computed in about 5 minutes.

Documentation

Most of the PVR documentation is at least one and a half year old. A few papers are currently being written ([3], [5] and [6] below) and should be available soon. More papers are planned for the near future...

Source code availability

Currently access is limited. We expect to have a public release soon...

Project Overview

In order to achieve interactive volume rendering speeds we developed the PVR (Parallel Volume Rendering) system [4], which consists of a mix of modular C/Tcl/Tk code. With PVR it is possible to balance rendering efficiency, throughput, and latency over a large number of parallel machines configurations. It supports different rendering schemes and it can be easily augmented with others. PVR has unique capabilities: it can be used to build large and complex distributed visualization environments, and it lets the user control the rendering performance.

Specially important are the load balancing scheme and an efficient pipelined approach to compositing used in the PVR renderer [2]. It is based on a new model for measuring the amount of work one needs to perform in order to render a given volume, and use this model to obtain a better load balancing scheme for distributed memory machines. Both of these techniques were implemented and tested on the Intel iPSC/860 and the Intel Paragon and have been shown to be superior to current techniques.

PVR introduces a new level of interactivity to volume rendering. Larger DVEs (Distributed Visualization Environments) can be built on top of PVR, and yet be portable across several architectures. These DVEs that use PVR are given the opportunity to make effective use of available processing power (currently from a few to a few hundred processors), giving a range of cost/performance to end users. This is particularly important in the scientific research community, since most often the question is not "how fast, but how much". PVR provides a strong foundation for building cost effective DVEs.

We are currently working on making the system stable enough for large scale availability. With that in mind we are currently working on creating a complete visualization tool (like VolVis [1]) on top of PVR. One of the challenges is how to integrate "resource allocation" and "admission control" in our DVE. Detailed documentation [3] of the complete system is currently under preparation.

Further Information on Parallel Volume Rendering

More information on parallel volume rendering can be found on the proceedings of the Parallel Rendering Symposium '93 and '95 and the Volume Visualization Symposium '92. Several papers on the topic were also presented at the IEEE Visualization conferences in recent years (since '90). A special issue of IEEE Computer Graphics and Applications was done in 1994 on parallel rendering.

A brief survey of parallel volume rendering methods is in Claudio Silva's 1992 RPE (Research Proficiency Examination HTML).

Dr. Craig Wittenbrink keeps a page with information regarding parallel volume rendering.

Project Members

Dino Pavlakos, and Brian Wylie of the Visualization Group at the Sandia National Labs and Prof. Arie Kaufman and Claudio Silva of Stony Brook are the developers of PVR. Fan Maurice Lok, previously a MS student at the VisLab at Stony Brook, made substantial contributions to the project.

References:

[1] VolVis: A Diversified Volume Visualization System, Avila et al., pages 31-38, IEEE CS Press, IEEE Visualization '94. (Postscript)

[2] Parallel Performance Measures for Volume Ray Casting, Silva and Kaufman, pages 196-203, IEEE CS Press, IEEE Visualization '94. (HTML)

[3] The PVR User's and Programmer's manual, In preparation, 1995.

[4] Interactive Parallel Volume Rendering Using the PVR System, Silva et al, Manuscript, 1995. (HTML)

[5] Content-Based Load Balancing and Pipelining for Parallel Volume Rendering on Distributed-Memory Architectures, Silva, Pavlakos and Kaufman, In preparation.

[6] The PVR System, C. Silva, A. E. Kaufman and C. Pavlakos, Draft paper, submitted for publication.

* Sample Images
* Animations