Long Paper Copyright © 2004 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions Dept, ACM Inc., fax +1 (212) 869-0481 or e-mail permissions@acm.org. © 2004 ACM 1-58113-884-9/04/0006 $5.00 Conceptual Design and Implementation of a Pipeline-Based VR-System Parallelized by CORBA, and Comparison with Existing Approaches Andreas Gerndt * , Mark Asbach, Torsten Kuhlen, Christian Bischof Center for Computing and Communication, RWTH Aachen University, Aachen, Germany Stefan Lankes , Thomas Bemmerl Chair for Operating Systems, RWTH Aachen University, Aachen, Germany Abstract The object-oriented Virtual Reality toolkit ViSTA developed at Aachen University utilizes the Visualization Toolkit (VTK) in order to implement scientific visualization applications. VTK already of- fers parallelization possibilities. Its parallelization strategy cuts off the visualization pipeline between nodes and distributes these parts over several processes. By contrast, ViSTA makes use of an MPI- based parallelization framework whose parallelization components are decoupled from the algorithmic layer. Algorithms implemented here merely use sequential VTK pipelines for the computation. Our new approach also parallelizes VTK’s pipelines; however, the parallelization is based on CORBA. The advantages over MPI- based implementations are a straightforward integration into an object-oriented framework and the handling of complex data struc- tures. In this paper, we present our CORBA-based implementation and compare it to others. We show that CORBA should be pre- ferred for complex and object-oriented environments and that it has speed-up properties in parallel environments similar to MPI-based approaches. Keywords: Visualization Pipeline, Parallelization, CORBA, MPI, Virtual Reality 1 Introduction In general, Virtual Reality toolkits organize their rendering objects by means of scene graphs. This makes it possible to navigate and to manipulate virtual objects interactively. However, VR applications in the field of scientific visualization additionally need data flow design patterns since the objects actually handled are not graphical objects. These have to be created first and have to be updated fre- quently. One of the main approaches to control this visualization data flow is the pipes and filters pattern. Each node of this pipeline gets data from source nodes, deals with it, and offers the modified results as an input for the following neighbor nodes. ViSTA [van Reimersdahl et al. 2000], the VR toolkit developed at Aachen University, also makes use of visualization pipelines in or- der to implement scientific visualization. This functionality is not * e-mail: gerndt@rz.rwth-aachen.de e-mail: stefan@lfbs.rwth-aachen.de completely implemented from scratch; rather the essential skeleton classes are offered by a toolkit called Visualization Toolkit (VTK) [Schroeder 2001]. The pipeline handling is always similar. First, the pipeline is as- sembled; thereafter, each node of the pipeline can be modified with appropriate parameters. Finally, the user can send an update com- mand to the last node, typically the render node. This triggers off an execution through the whole pipeline starting with the first node, which usually contains simulation data. Afterwards, a repeated up- date command again goes through the pipeline but without exe- cutions because all nodes are still up-to-date. If in the meantime changes occurred at one node only the pipeline from this modified node to the last node is executed. Actor DataMapper PolyData ContourFilter GridReader Figure 1: Data flow in a visualization pipeline. Figure 1 shows a simple pipeline to compute iso-surfaces, in the fol- lowing used as test case in this paper. The actor is a graphical object and is updated every time the rendering loop of the VR application is triggered. Hence, changing iso-values, which are parameters of the contour filter, displays modified iso-surfaces immediately. Because VR applications require real time interaction, the achieved frame rates have to be above a certain frequency. Therefore, update computations especially of more complex visualization pipelines must be optimized. An obvious possibility is parallelization. In this paper, we describe common parallelization schemes first. Pipeline distribution approaches based on these basic schemes are explained next, followed by a short introduction to CORBA and an explanation of our CORBA-based parallelization approach. There- after, test bed and results that show the usability and effectiveness of this new approach are presented. Conclusion and a glimpse at future work close this paper. 2 Parallelization Approaches In general, all present operating systems offer functionalities to split a running process into two or more separated threads. Most system providers develop own solutions, although a common stan- dard called pthread [Nichols et al. 1998] has been existing for some years. Because multiple threads spawned by the same process are executed in the same memory environment, the main disadvantage is the restriction merely to one computer node. Therefore, the pos- sible speed-up is limited by the number of local processors. Fur- thermore, commonly used resources like shared I/O devices are bottlenecks and restrict the speed-up even more. The main idea of pthread is enabling concurrency, not parallelism. 368