Title: Runtime Techniques for Scientific Applications
1Run-time Techniques for Scientific Applications
- Curtis Lisle, Ph.D.
- Systems Architect
- SGI Professional Services
2Agenda
- Scientific Visualization Software Architectures
- Analytical and Rendering models
- Distribution of parallel datastructures
- Parallel performance
- Interactive Performance with Very Large Models
- Grid Computing
3Components of a Visualization System
- Database Representation (save and reload)
- Method of traversing, and changing the dataset
(scene graph) - Architecture to render a view of the data
(Performer) - Software Packages for Problem Domains
- CFD (computational Fluid Dynamics)
- Exa Powerflow
- Fluent
- Finite Element Analysis
- Automotive and CAD applications
42 D Transient Flow (powerflow)
5Turbulent Jet (powerflow)
6Techniques for Handling Large Datasets
- SGI Graphics APIs
- OpenGL Optimizer decimation operations
- OpenGL Performer graphics rendering
- Volumizer - accelerated volumetric rendering
- Level of Detail
- Manual Insertion - time consuming and awkward in
the modeling process - Auto Level-of-detail insertion
- Third Party Packages
- Visualization Toolkit (VTK) and Applications
- www.kitware.com
- Rational Reducer
7Auto Level of Detail
- Optional process for converting files to
Performer native format for fast loading - Auto-LOD algorithm rearranges the scene graph for
higher rendering performance
(PF Loader)
PFB
Performer Converter
Performer Rendering Environment
Large Database
Auto-LOD algorithm
(Either path OK)
(IV or VRML)
8Auto-LOD Algorithm
- Export Scene Graph to VTK Datatype
- Spatial Partitioning and decimation
- Recombine in modified scene graph
VTK
VTK
PF
PF
LOD
low
high
9Dual Modeling Approach
- Dont try to put analytical values on a polygonal
database - Instead, regenerate the rendering data structures
from the analytical ones as needed (when state
changes appreciably enough) - Dead Reckoning - technique for controlled
approximations
Analytical Model
Rendered Model
10Recursive, Object-Oriented Structures for
Molecular Modeling
- Project Goals
- Create a software environment for object-oriented
molecular modeling - Construct and debug models using sequential
object-oriented design (in C) - Provide a methodology to consistently extend the
sequential hierarchy for parallel or distributed
execution using standard message passing layers
(i.e. BSP, MPI) - Preserve a simple, sequential interface at the
user level for non-computer scientists (hide the
parallelism)
Problem-specific abstractions
Hidden parallelism
11Recursive Model Definition
- A molecule is a set of smaller molecules.
- All applications use recursive molecule class
hierarchy - Some applications are sequential, some are
distributed
12Molecule Browser
13Property Viewer
14Parallel Speedup
- Peak speedup of 10 (using 12 to 14 processors)
- Then msg overhead / context switches begin to
dominate
Speedups Random
Speedup
Number of Processors
15Distribution Affects Performance
- Atoms and molecules were scattered across the
processors - More efficient messaging resulted from inteligent
allocation
(localized)
(random)
16Distributed Science Grid Computing
- The SGI vision of Visual Area Networks introduces
the concept that the data is stored and processed
in one placebut it can be interacted with by
users using any client device, across any network.
17Parallel Processing Techniques
- MPI - Message Passing Interface
- flexible message passing Interface
- Forces application to be cut up with explicit
messaging - OpenMP
- Shared memory computing
- Restricted number of CPUs
- Tightly integrated threading model
- Easier programming model
- greater speedup
- Multi-Level Parallelism
- OpenMP within Shared-memory computers
- MPI between computers in a cluster
18Conclusions
- SGI scalable computation and scalable graphics
are uniquely suited for interactive simulation
applications - A large set of commercial products and shareware
research programs are available - VTK
- Globus toolkit
- SGI is commited to continuing its leadership in
graphics APIs (i.e. Performer, Volumizer, OGL
Multipipe, etc.)