Title: Biomedical Computing and Visualization
1Problem Solving Environments for Scientific
Computing
Chris Johnson
Scientific Computing and Imaging Institute School
of Computing University of Utah
2Computational Cardiology
3Computational Neuroscience
4Biomedical Visualization
5DOE ASCI Center CSAFE
6Time Dependent Combustion
7Fracture Close-Up
8DOE SciDAC Center Nuclear Fusion
9Seismic Simulation and Visualization
10Elastohydrodynamic Lubrication (EHL)
11CFD Time Dependent Visualization
12Genetics
13Surgical Planning
14Computational Science
Computational X - Chemistry - Physics -
Biology - Medicine - Fluid Dynamics -
Geoscience -
- Common Tools
- Image Processing
- - Mesh Generation
- - Approximation
- - Linear Algebra
- - Visualization
Infrastructure - Memory Mgmt - Process Mgmt -
Framework
15Problem Solving Environments (PSEs)
Chemistry
Physics
Core Memory Mgmt Process Mgmt Framework Libraries
Biology
Geoscience
Medicine
Fluid Dynamics
16Problem Solving Environments
- Computational Workbench
- Modeling, Simulation,
- Visualization Tools
- Dataflow Programming
- Modules
- Spatial/Temporal Coherence
- Computational Steering
- What if..? Problem Exploration
- Flexible, Extensible Environment
- Module Development Tool
17Problem Solving Environments
18SCIRun
- Modules - functional elements
- Computation
- Visualization
- Modeling
- Imaging
- Data flows through ports
- Fields - the main data model
- Nets - are the application
19Packages
- Encapsulated project
- Hierarchical organization of modules
- Packages enabled via configure options
- configure --enable-packageBioPSE mypackage
20Dataflow Datatypes
Matrix
Field
ColorMap
Geometry
21Matrices Class Hierarchy
- Matrix base class
- get, put, , nrows, ncols, get_row, get_col,
get_val, zero, mult, mult_transpose, print,
is_,as_,sparse,dense,column, cg_solve,
bicg_solve, scalar_multiply - SparseRowMatrix
- int rows, int cols, double a, int nnz
- ColumnMatrix
- double data
- DenseMatrix
- double data
22Matrices External Libraries
- PETSc
- Preconditioners jacobi, bijacobi, sor,
eisenstat, icc, ilu, asm, sles, lu, mg, spai,
milu, nn, cholesky, ramg - Solvers KSRICHARDSON, PSPCHEBYCHEV, KSPGG,
KSPGMRES, KSPTCQMR, KSPBCGS, KSPBGS, KSPTFQMR,
KSPCR, KSPLSQR, KSPBICG, KSPPREONLY - BLAS and Atlas
- Faster linear-algebra via loop unrolling
23Fields Mesh Data
Data int, float, double, Vector, Tensor,
Geometry Regular Irregular
Properties Data_at (center)
24Example Datasets - On Line
25Algorithm Structure
- Templated Algorithm
- Composed with Field classes to provide optimized
implementation - Uses dynamic compilation to create required
combinations - Potentially specialized for specific field type
templateltclass Fieldgt RenderField public
RenderFieldBase
virtual void render(FieldBase)0
26Visualization at All Levels
- Application level
- Streamlines, cutting planes, isosurfaces, volume
rendering, etc. - System level
- Module profiling
- Memory allocator visualization
- Links to TAU
27Error Messages
- Run-time messages are sent to the modules log
28Interactive Large-Scale Visualization
29SCIRun/BioPSE Extensibility
- Leverage existing utilities/programs
- Extensibility through bridges
GENESIS
Matlab
NetSolve
SQL
lib
socket
BioPSE
PETSc
lib
ITK
lib
30Adding a Module to SCIRun/BioPSE
- Rapid development/protyping tool
- ModuleMaker ComponentWizard
- Start with a generic template
- Design ports, interface, callback
- Compile on-the-fly
- Dynamically reload
31Component Wizard
32(No Transcript)
33Adaptive Finite Elements
34Inverse EEG Simulation
35Source Localization Algorithm
Data
36(No Transcript)
37Forward/Inverse EEG Simulation
- Apply source location
- 3D adaptive mesh generation
- Finite element simulation (forward and inverse
solution) - Linear system solve
- Visualization
400,000 Tetrahedral Elements, SGI and Linux PC
38Cardiac Defibrillation Device Design
300,000 Tetrahedral Elements, SGI and Linux PC
39Software Engineering
Software Engineering is Often Overlooked! Software
Engineering is Hard! Software Engineering is
Important!
40Internal Software Management
- Shared Software System
- CVS
- Log, Track, and Manage Bugs
- Bugzilla
- Automated Documentation
- doxygen
- Automated System Testing
- Custom scripts
- Tinderbox
- Development Management
- SCIRun Exec / NCRR Exec
- Master task list
- Weekly meetings
- MS Project
41Current SCIRun/BioPSE Research
- Bridging to other Applications and Components
- Detachable interface
- Reproducibility
- CCA compatibility
- Remote vis
- Custom UI
- Scripting
- Focused applications!
BioPSE
GUI
42DOE Common Component Architecture Project
- A CA for large-scale Scientific Computation
- Component Characteristics
- May be SPMD or multi-threaded parallel objects
- Heterogeneity
- Parallel platforms to desktops and any language
- Local and Remote
- Parallel communication for remote parallel
interfaces and 0-copy in-process connection - Dynamic Composition and Integration
- Hot-swapable components, shared instances
- www.cca-forum.org
43Building Applications by Composition
- Components can be linked along share
interfaces (Ports) where one component invokes
the services of another
Remote component
Direct connect
setImage()
Image Database Component
getImage()
doFFT()
ACME FFT Component
adjustColor()
Single address space
Image tool graphical interface component
44Abstraction - Picasso
45SCIRun2 Overview
- Design Goals
- Distributed memory parallel components
- Grid computing
- Meta components to combine
- CCA
- SCIRun
- VTK
- Other component systems
SCIRun2
46Component Bridges
Bridges adapt component interactions Automatically
or semi-automatically generated
Maps semantics between multiple software domains
47Managing Complexity Subnets
48Managing Complexity Subnets
49Managing Complexity Subnets
50Managing Complexity Annotations
51All Modules are Generic
52Power Apps
53PowerApps User-Friendly, Domain-Specific
54BioPSE
55BioFEM - PowerApp
56BioTensor - PowerApp
57ITK Insight Toolkit
www.itk.org
58SCIRun and ITK Integration
59More Apps, More Bridges
NCMIR
60(No Transcript)
61(No Transcript)
62Documentation
63Acknowledgements
- NIH NCRR, NLM and BISTI
- DOE ASCI and SciDAC
- DARPA
- NSF
- Utah Centers of Excellence
- Visual Influence
64(No Transcript)
65(No Transcript)
66More Information
www.sci.utah.edu