(appeared in IEEE Computational Science and Engineering, Vol. 3, No. 4, Dec. 1996, pp. 13 - 17. )
Researchers in the field of scientific computation
have the fortune to see their capabilities increase by more than an order
of magnitude each decade. Visual supercomputing is the new frontier in scientific
computation and visualization. As high-end supercomputers have become more
powerful, an greater than Cray Y-MP performance has become available on
the desktop, the scientific community has witnessed an explosion in its
ability to generate results. Satellites, medical scanners, microscopes,
radio telescopes, geophysical sensors, and information superhighways all
generate huge amount of scientific, engineering, and medical data. Systems
which tightly couple high-performance visualization with high-performance
computing are becoming more common, as are high-performance networks which
are beginning to allow remote visualization and interaction with running
simulations.
There are many aspects to visual supercomputing, including numerical computation,
scientific visualization, interactive visualization, computational steering,
and virtual reality. An overview and clear understanding of some of these
aspects will help to gain insight into the design of a supercomputing system,
the implementation of many aspects and methods, and the results of scientific
and engineering calculations. This paper discusses several aspects of modern
visual supercomputing, and presents a case study in real-time fluid simulation.
Scientific computation is at the heart of supercomputing.
It uses computers to generate data from engineering, chemistry, medicine,
physics, mathematics, and other scientific area. It includes simulating
physical processes, calculating engineering properties, producing chemical
behaviors,
manipulating medical data, etc.
Users, when presented with a new result, are impatient to see and understand
it as quickly as possible. They will prefer to understand it from observing
an image rather than from reading abstract numbers and symbols. Visualization,
or scientific visualization, is a process of transforming the generated
abstract data into a visual form so that the users can observe and
understand the results better and easier. Its goal is to make a systems
nature apparent at a glance. Visualization employs techniques from computer
graphics, image processing, computer vision, graphical user interface, and
other related fields. Besides visual computing and display, we need to take
into account human perceptual and cognitive capabilities, human variations,
and task characteristics [1]. The ability to visualize complex data sets,
synthetic models, and results from supercomputer calculations is essential
in provoking insights, enabling communication of these insights to colleagues,
and confirming the integrity of observations [2].
Visualization uses computer graphics to make pictures that give us insight
into the abstract data and symbols, not just its appearance. It is related
but different from the subject of computer graphics. Computer graphics is
mostly concerned with realistic rendering of scenes that either do exist
or might exist in the real world or our experience [3]. Graphical simulation
uses graphics to simulate and animate the behaviors or phenomena which we
encounter in real life. In contrast, visualization is mostly concerned with
visualizing things we could not otherwise see. For example, software visualization
can help software engineers cope with the complexity while increasing programmer
productivity. Software visualization tools use graphical techniques to make
software visible by displaying programs, program artifacts, and program
behaviors [4]. As we can see, there are many methods and research directions
in visualization. The mostly discussed research areas include volume visualization
for volumetric data, large data-set visualization for physical and natural
sciences, and information visualization for text libraries.
Volume visualization is a method of extracting meaningful information from
volumetric data using graphics and imaging. For example, a sequence of 2D
slice images obtained from Magnetic Resonance Imaging (MRI) or Computed
Tomography (CT) can be reconstructed into a 3D volume model and visualized
for diagnostic purposes or for planning of treatment or surgery. Volume
rendering techniques were developed that attempt to capture the entire 3D
data in a single 2D image. Volume rendering convey more information than
surface rendering images, but at the cost of increased algorithm complexity,
and consequently increased rendering time [2]. Fundamentally, it works by
modeling the volume as cloudlike cells composed of semi-transparent material.
Each cell emits light, partially transmits light from other cells, and
absorbs some incoming light [5].
The visual presentation and examination of large data-sets from physical
and natural sciences often require the integration of terabyte or gigabyte
distributed scientific databases with visualization. The display and interpretation
of data and information from physical and natural sciences employs statistical
analyses, cartography, Computer Aided Design (CAD) and Geographic Information
Systems (GIS) techniques in conjunction with visualization. The integration
of multi-disciplinary data and information (e.g. atmospheric, oceanographic,
and geographic) into visualization syst=
ems will help and support cross-disciplinary explorations and communications.
Computation and visualization in the physical and natural sciences are distinguished
by the need to deal with data sets that are produced by a large variety
sources. Raw data are remotely sensed by a variety of satellite sensor types,
radars, sonars, and lidars (laser radars). Direct measurements are taken
from surface stations, airplanes, ships, buoys and balloons. The variety
of data comes with different data geometries, sampling rates, and error
characteristics. These issues are compounded when dealing with environmental
science research problems which attempt to merge air, water and
subsurface data into a single visualization [6].
Information visualization is emerging as a new research area. Visual representation
of information requires merging of data visualization methods, information
categorization, information retrieval, and computer graphics. In contrast
with scientific and physical data which are mostly spatial, information
is completely abstract and thus require different visualization approaches.
The field of information visualization includes visualizing retrieved information
from large document collections (e.g., digital libraries), the World Wide
Web, and text databases. Because information is usually non-spatial data,
one needs to map the text library information into a physical space that
will represent relationships contained in the information faithfully and
efficiently. This could enable the observers to use their innate abilities
to understand through spatial relationships the
correlations in the library. Finding a good spatial representation of the
information at hand is one of the most difficult tasks in visualization
of abstract information [1].
The traditional computational engineering and visualization
includes the following process: develop a computational model; specify initial
conditions; simulate the model (i.e., the governing equations) numerically;
store the results off to disk; visualize the data via a separate visualization
package. The intermediate results, which might be part of the solutions
to the problems, are ignored. Interactive visualization allows us to visualize
the results or presentations interactively in different perspectives (e.g.,
angles, magnitude, layers, levels of detail, etc.), and thus help us to
understand the results on the fly better. Graphical User Interface (GUI)
is needed for this interaction. Interactive visualization systems are most
effective when the results of models or simulations have multiple or dynamic
forms, layers, or levels of detail. Thus interactive visualization helps
users interact with visual presentations of scientific data and understand
the different aspects of the results. For example, new interactive computerized
visualization technology can give doctors easier, quicker and less expensive
ways to see the interiors of a patient's heart (from sliced images) in different
angles and layers, and determine whether and to what extent a patient may
have heart disease.
Interactive visualization makes the scientist an equal partner with the
computer to manipulate and maneuver the 3D visual presentations of the abstract
results. The requirements for such mastery are very high performance components
in computing, networking, and visualization. The visualization software
needs to be integrated directly with the numerical computation software,
and in many cases there is no need for extra storage because the intermediate
results are displayed and used on the fly. The ultimate in interactive visualization
will permit the user to input any conceivable technical questions, manipulate
the system results, and traverse the visual presentations in real-time.
Many software tools, packages, and interactive
systems have been developed for scientific visualization. However, most
of these systems are limited to post-processing of data-sets. In a traditional
visualization and computational model, parameters, initial conditions, and
boundary conditions are all predefined. Any changes and modifications made
to the model, input parameters, initial conditions, boundary conditions,
or numerical computation considerations are accomplished off-line, and each
change made to the model or input parameters causes most of the other steps
and computation processes to be repeated. In many cases the computations
are done after hours or days of numerical calculations, only to find the
results do not help solving the problems or the initial value of a parameter
has been wrong. Scientists and engineers would prefer to have a system in
which all these computational components were linked so that, parameters,
initial and boundary conditions, and all aspects of the modeling and simulation
process could be steered, controlled, manipulated, or modified graphically
through interactive visualization within the context of a single application
program.
The integration of computation, visualization, and control in one tool is
highly desirable, because it allows users to interactively steer
the computation. At the beginning of the simulation before there is any
result generated, a few important feedbacks will significantly help choosing
correct parameters and initial values. One can visualize some intermediate
results and key factors to steer the simulation in the right direction.
With computational steering, users are able to modify parameters in their
systems as the computation progress, and avoid something being wrong or
uninteresting after long hours or days of expensive computations. Therefore,
computational steering is an important tool to adjust uncertain parameters,
to steer the simulation in the right direction, and to fine tune the results.
Implementation of a computational steering framework requires a successful
integration of many aspects of visual supercomputing, including numerical=
computation, system analysis, and interactive visualization, all of which
need to be effectively coordinated within an efficient computing environment.
Computational steering can be considered as the ultimate goal of interactive
computing [7].
Computational steering is different from interactive visualization. It uses
interactive visualization to check the parameters, conditions, intermediate
results, and other aspects of a simulation to control and steer the computation
in the right direction. Interactive visualization, on the other
hand, is a general method to visualize intermediate or final results of
a scientific computing from different perspectives specified by the users.
It doesn't emphasis the control and steering of the computing process.
There are many existing products and packages for visualization applications,
such as VTK, AVS, IRIS-Explorer, Khoros, Tcl/Tk, Motif, etc. Visualization
toolkits (VTK, AVS, IRIS-Explorer, Khoros) and user interface development
toolkits (Tcl/Tk, Motif) simplify the implementation of a visualization
system. The developers can assemble components instead of constructing everything
from scratch. However, on one hand, there is a bottom-neck between the applications
and the visualization packages and tools. In many cases it takes time to
learn an existing package only to find that the package lacks the specific
functions needed for the application. On the other, some of
these packages are relatively expansive, thus the number of users to have
access to the software is limited. For example, AVS/Express is a multiplatform,
standards-based software environment for developing technical applications
with interactive visualization and graphics functions. The package is well
developed and available for all major UNIX workstations and costs $18,000,
with subsequent seats priced from $4,500 [8]. Due to these reasons, many
interactive visualization and computational steering systems are implemented
for specific applications with specialists from engineering, computer graphics,
network, and other related research area.
Software systems are towards integrating scientific computation, interactive
visualization, computational steering, and multimedia. Hardware systems
appear more and more to be integrations of distributed supercomputers, visualization
workstations, VR tools, and other hardware devices through high speed networks.
Distributed systems provide a mechanism for effectively harnessing the total
computational power of multiple workstations available on a network. Distributing
the output of large supercomputing results emphasizes sharing of resources
among applications. Partitioning large computation and visualization processes
into independent subtasks and then distributing those subtasks provide us
the benefit of parallelism. The harnessed distributed system is thus made
to serve as a cost-effective high-performance virtual machine for performing
large computations, steerings, and interactive visualizations. A synchronously
conferenced collaborative visualization environment would let multiple users
on a network
of workstations and supercomputers share large data sets, simultaneously
view
visualizations of the data, and interact with multiple views while varying
parameters [9].
Simulating physically realistic complex fluid behaviors presents an extremely
challenging problem for computer graphics researchers. Such behaviors include
the effects of driving boats through water, stirring liquids, blending differently
colored fluids, mixing insolubles such as oil and water, rain falling and
flowing on a terrain, fluids interacting in a distributed interactive simulation,
etc. Such capabilities are useful in computer art, advertising, education,
entertainment, and training. To provide a physical foundation for general
fluid animation, one must employ the Navier-Stokes equations, which are
the embodiment of Newton=D5s second law in fluids, and the governing equations
of general fluid flow. Recently, we have developed a Computational Fluid
Dynamics and visualization system using the Navier-Stokes equations for
real-time fluid behaviors [10]. This method integrate computational steering,
interactive visualization, together with real-time graphical rendering of
the fluid behaviors. Here we concisely introduce our
methods and techniques.
Navier-Stokes equations are derived from Newton=D5s
second law. The following
equations are called the Navier-Stokes equations for an incompressible flow
(1)
where , , , , r is the density, p is the pressure, m is the viscosity, i+ j + k, V ui + vj + wk,
g = gxi + gyj + gzk, and gx, gy, gz are the gravity
vectors. The differential continuity equation for incompressible flow
(2)
is used together with Navier-Stokes equations to determine the relationships
between velocities and pressures. The Navier-Stokes equations without external
forces can be written in the dimensionless form
(3)
where Re is the Reynolds number. The Reynolds number is a parameter that
indicates mainly the viscosity of the fluid. If the Reynolds number is relatively
small, the fluid is viscous and the flow is laminar; if it is large, the
fluid tends to be inviscid and the flow is turbulent. Therefore the results
of the Navier-Stokes equations with different Reynolds numbers correspond
to the behaviors of different kinds of fluids.
In our approach, we use the pressures in a 2D fluid
flow field to simulate the fluid surface behaviors [10]. At the same time,
we can visualize the pressure distributions in the fluid flow field through
the fluid surface. Therefore we only need to compute the 2D Navier-Stokes
equations. There are several approaches in computational fluid dynamics
to solve the Navier-Stokes equations. Here we employ a finite-difference
solution technique that uses a penalty method [11].
After we calculate each state of the velocity vectors and pressures of the
fluid flow field, we can draw a current frame of fluid flow as in Fig. 1.
The fluid surface height shows the turbulences as well as the values of
the pressure distributions in the flow field.
As shown in the graphical user interface in Fig.
1, all the parameters for simulating the Navier-Stokes equations can be
modified. In a simulation, one can manipulate these parameters (grid size,
time-slice, Reynolds number, etc.) to achieve stability and other special
effects. For example, we can simulate different kinds of fluids by changing
the Reynolds number. However,
higher Reynolds number in the calculation may result in numerical divergence,
while lower Reynolds number will result in numerical convergence. We may
first specify a very high Reynolds number to achieve some specific turbulent
behavior but reduce the Reynolds number before the numerical calculation
diverges. This way we can use a simple numerical method to achieve behaviors
not possible for a constant parameter, and more importantly, to steer the=
simulation in the right direction. Even though this is not an accurate fluid
computation at the beginning, it is very helpful to locate the bugs at the
initial stage, find reasonable parameters, and fine tune the results.
Through the interactive graphical user interface, we can look at the fluid
surface pressures, check the velocity vector field, change the viewing angle,
adjust boats' respective locations, add floating objects, and apply some
other controls and manipulations for interactive visualization. The interactive
visualization is integrated together with the numerical computing and steering.
A flow is called internal if the flow field is inside a channel, pipe or
any other external boundaries. It is termed external if the flow field is
outside a tower, bridge or any other internal boundaries. A fluid flow can
be both internal and external if it has both internal and external boundaries.
The fluid boundary condition changes determine the fluid behavior. Therefore,
the boundary conditions are extremely important in achieving the required
fluid flow simulation. The boundary conditions can be modified iteratively
to change the fluid behaviors. Therefore, depending on the applications,
the boundary conditions can be fixed, movable, not modified or modified
at each
step. For example, by specifying a small internal boundary area inside the
fluid flow field and moving the area and its boundary conditions in the
fluid field, we can achieve the behavior of a boat moving inside the fluid.
At the same time, we can interactively visualize the pressure changes on
the fluid surface with such a moving boundary condition (Fig. 1).
back to home page