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