|
Advanced Scientific Computing
Parallel Visualization of Large Data Sets
R. Bennett, M. McGuigan, G. Smith, J. Spiletic, S. Tomov
In conjunction with the BNL Medical Department, we are
developing a Digital Mouse Brain Atlas [1] that can be used by
researchers as a standard reference to map anatomical regions and
function associated with imaging studies. For example, in
Figure 1 we show a probabilistic Atlas
where different colors represent different regions of the mouse brain
and darker shades indicate less probable results from an imaging study.
Parallel visualization allows one to handle scientific data sets
that are too large or render too slowly on single processor systems. In
[2] we implemented interactive parallel visualization by extending
popular APIs such as Open Inventor and VTK to support commodity-based
clusters. In this work we used Chromium, a popular software tool that
provides scalable display technology, to implement our parallel
rendering. Figure
2 shows a result
from the parallel visualization on four processors of an X-ray tomograph
taken of the thigh bone of a rat used in osteoporosis studies. The
different colored isosurfaces are handled by separate processors.
The high performance (40Gflops peak) and low cost ($400) of current
graphics cards have given rise to great interest in using Graphics
Processing Units (GPUs) for non-graphics scientific computations. In [3]
probability-based simulations were implemented on the GPUs and their
performance was benchmarked
and compared against the CPU with an overall 3 times speedup for the GPU.
Such probability-based simulations have a wide range of applications in
physics, biology, chemistry and finance. They are computationally
intensive and lend themselves naturally to lattice implementations on
GPUs. Specifically we demonstrate the techniques using Monte Carlo
simulation of the Ising spin model used in physics to study phase
transitions in magnetic materials. The GPU Monte Carlo implementation
used Cg (C for graphics) fragment programs, which are executed on the
GPU by an OpenGL application. We use a standard "Dynamic texturing"
programming model, where the computational domain is modeled by a
texture, then a GPU fragment program uses the texture to render an image
in an off-screen buffer, and finally the texture is updated from the
resulting image. Special care is taken (on algorithmic and data
representation level) to organize the computations in terms of 4D vector
operations, which is important in the current GPUs in order to extract
maximal performance. Figure 3 shows a
direct visualization and computation on the graphics card of the 3D
Ising model with red indicating spin up and blue spin down.
References
-
[1] Benveniste, H., BlackLand, S.J., Ma, Y., Hof, P., Bennett, R.,
McGuigan, M., and Slatest, L. A three-dimensional digital Atlas database
of the adult C57BL/6J mouse brain by magnetic resonance microscopy.
Neuroscience 135: 1203-1215 (2005).
-
[2] Tomov, S., Bennett, R., McGuigan, M., Peskin, A., Smith, G., and
Spiletic, J. Application of interactive parallel visualization for
commodity-based clusters using visualization APIs. Computers & Graphics
28(2): 273-278 (2004).
-
[3] Tomov, S., McGuigan, M., Bennett, R., Smith, G., and Spiletic, J.
Benchmarking and implementation of probability-based simulations on
programmable graphics cards. Computers & Graphics 29(1): 71-80 (2005).
Last Modified: January 31, 2008 Please forward all questions about this site to:
Claire Lamberti
|