In this article we have introduced the PVR system, and have provided more insight on how to use massively parallel machines for interactive visualization. In particular, we have given detailed performance numbers for the Intel Paragon using PVR.
PVR introduces a new level of interactivity to volume rendering. Larger DVEs 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.
As far as the user interface is concerned, PVR introduces a much simpler way to create it. No longer one has to spend time coding in X/MOTIF (or Windows) to create the desired user interface. The Tcl/Tk combination is much simpler, gives more flexibility, and is as powerful as the other alternatives. With Tcl/Tk becoming the Internet agent language, it should become as popular as UNIX shell programming. Sites should be able to easily create and modify their own user interface.
In this paper, we have also discussed several of the issues related to interactive rendering using a remote parallel machine. Our compromise has been to limit interactivity to high-level bulk rendering commands, like rotations and translation. The lag that the network speed and rendering pipeline generate make real-time manipulation impossible, even if real-time rendering is achievable. Our rendering times are on the order of a few frames per second, and for our use it has helped speed up the visualization.
The idea of developing PVR started out of frustration trying to use network of workstations and the Paragon as rendering engines for VolVis. It was always clear that a pure distributed approach to building rendering environments would be much more powerful than special rendering tools with parallel capabilities. Even though we have completed a usable and efficient system, there is still a long wish list, in both the research and development front.
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 DVE (using VolVis as a starting point) on top of PVR. One of the challenges is how to integrate resource allocation and admission control in our DVE.
Some functionality is missing from PVR and needs to be incorporated. The most important is probably the support for multiple data sets in a session. This would make the load balancing scheme much more complicated, and simple heuristics might not generate well balanced decomposition schemes. If the volumes are allowed to overlap (as in VolVis), the problem is even harder, and the solution seem to require having special composite nodes that perform the sorting at the end of the pipeline. It might be necessary to have a reconfiguration phase each time a new volume is introduced in the picture. It is not clear yet how this can be done efficiently.
A simpler change is to add support in the PVR renderer for non-homogeneous processors. One just needs to change the load balancing scheme slightly by normalizing the number of PARC sub-cubes per processor with their relative performance parameters. Finally, we hope to look in the future for ways to perform real-time manipulation rendering, where the user can just move a mouse and see the picture changing in real-time with minimal lag. For this, we suspect the work done in eliminating virtual reality lag may help.