ParVox is a distributed visualization system consisting of a rendering core running on a parallel computer and a graphic user interface program (GUI) running on a Unix workstation. The ParVox system is designed for interactive, distributed visualization of large multiple time steps, multiple-parameter volume data sets: data sets that are impractical or impossible to visualize on workstations.
The following requirements were identified from discussion with scientists and are the basis for the design of ParVox:
- Able to visualize a pregenerated volume data set interactively in three-dimensional (3-D) space or animate pregenerated multiple time-step volumes. Current visualizations include translucent colored volumes, isosurfaces representing threshold values, and 3-D slices of data.
- Provide an application programming interface (API) for linking into applications. The API allows applications to render 4-D (spatial and time) volumes with predetermined parameters, such as classification, viewing transformation, shading, and lighting. Storing intermediate simulation results as rendered images greatly reduces the disk storage and the transmission time to the user's workstation.
- Able to run in concert with the data generating application, all under the control of the GUI. This allows the researcher to view the model result while it is being generated and thus adjust the model parameters accordingly. This mode acts as both a visualization system and a debugging tool for the simulation by allowing analysis of results on the fly.
ParVox is designed to fulfill all of the above requirements. Currently, two of the three requirements have been implemented: It is able to visualize pregenerated data and has a full-featured rendering API.
As a post-processing distributed visualization system, it provides an X Window based GUI program for display and viewing control, a parallel input/output library for reading and writing 4-D volume data sets, a networking interface program that runs on parallel computer and calls the rendering API in response to the GUI workstation, and a parallel wavelet image-compression library that supports both lossless and lossy compressions.
The ParVox rendering API is similar to OpenGL. It includes lighting, shading, classification, data redistribution, multiple iso-surfaces, multiple slices, direct volume rendering, multiple variable and multiple time-step volume rendering. It uses the "Splatting" algorithm, which is a feed-forward voxel projection algorithm.
A functional pipelining architecture is proposed to handle the third requirement (see Figure 1). This allows the parallel computer to partition its resources optimally for the simulation process and the rendering process separately.
The core ParVox is a scalable, efficient, parallel volume rendering API. Both object-space decomposition and image-space decomposition are used to assure balanced computational loads among parallel processors. An asynchronous, one-sided communication scheme is used for data transmission from splatting processors to compositing processors. The communication and synchronization overhead are minimized by overlapping the data transmission and computation.
ParVox is running on the Cray T3D and T3E supercomputers using Cray's shared memory (shmem) library. It is being ported to the Message Passing Interface Standard (MPI2.0); therefore, it will be portable to other supercomputer platforms. ParVox has been successfully used by JPL researchers in visualizing the Atlantic Ocean Current Simulation data (see Figure 2), the Thermal Convection Modeling data, and the BEAM (Beacon-based Exception Analysis for Multimissions) difference maps.
This work was done by P. Peggy Li and James Tsiao of Caltech and Scott Whitman of Equator Technology for NASA's Jet Propulsion Laboratory. NPO-20348
This Brief includes a Technical Support Package (TSP).
ParVox- a parallel-processing software for volume rendering of data
(reference NPO20348) is currently available for download from the TSP library.
Don't have an account? Sign up here.