GKK 1 CASC Recommended Viewing: Since this is a pictorial presentation, I’ve gone through the effort to type up what I normally say in the “notes” section. To enjoy the animations, I recommend printing out the “notes” then watching via the slide show viewer. --Gary Kumfert
A Pictorial Introduction to Components in Scientific Computing Gary Kumfert with Steve Smith, Scott Kohn, Tom Epperly, Tammy Dahlgren, & Bill Bosl
GKK 3 CASC Once upon a time... Input Output Program
GKK 4 CASC As Scientific Computing grew...
GKK 5 CASC Tried to ease the bottle neck
GKK 6 CASC SPMD was born
GKK 7 CASC SPMD worked But it isn’t easy!!! But it isn’t easy!!!
GKK 8 CASC Meanwhile, corporate computing was growing in a different way Input Output Program browser spreadsheet editor graphics database multimedia client Unicode Input
GKK 9 CASC This created a whole new set of problems... browser spreadsheet editor graphics database multimedia client Unicode l Interoperability across multiple languages l Interoperability across multiple platforms l Incremental evolution of large legacy systems (esp. w/ multiple 3rd party software)
GKK 10 CASC Component Technology addresses these problems
GKK 11 CASC So what’s a component ??? Implementation : No Direct Access Interface Access : Generated by Tools Matching Connector : Assigned by Framework Hidden from User
GKK 12 CASC 1. Interoperability across multiple languages C C++ F77 Java Python Language & Platform independent interfaces Automatically generated bindings to working code
GKK 13 CASC 2. Interoperability Across Multiple Platforms Imagine a company migrates to a new system, OS, etc. What if the source to this one part is lost???
GKK 14 CASC Transparent Distributed Computing internet These wires are very, very smart!
GKK 15 CASC 3. Incremental Evolution With Multiple 3rd party software v 1.0 v 2.0 v 3.0
GKK 16 CASC Now suppose you find this bug... v 1.0 v 2.0 v 3.0
GKK 17 CASC Good news: an upgrade available v 1.0 v 2.0 v 3.0 Bad news: there’s a dependency
GKK 18 CASC v Great News: Solvable with Components
GKK 19 CASC v 1.0 Great News: Solvable with Components 2.1 v
GKK 20 CASC Why Components for Scientific Computing? l Interoperability across multiple languages l Interoperability across multiple platforms l Incremental evolution of large legacy systems (esp. w/ multiple 3rd party software) Sapphire SAMRAI Ardra Scientific Viz DataFoundry Overture linear solvers hypre nonlinear solvers ALPS JEEP
GKK 21 CASC The Model for Scientific Component Programming Science Industry ?
GKK 22 CASC Parallel Distributed Component-Based Application
GKK 23 CASC Research Issues: #1. The “MxN Problem”
GKK 24 CASC Research Issues: #2: Programming Model Science Industry ? vector.getLocalSize() on remote objects?
GKK 25 CASC Is This Still SPMD? Science Industry
GKK 26 CASC Is This Still SPMD? l No u Each “component” may be an entire legacy SPMD code u Multiple components (possibly distributed) working together on a single problem MPMD, MCMD, DPMD??? l But u Will look like SPMD to application developer u Business components look like serial code.
GKK 27 CASC Why Components for Scientific Computing? l Interoperability across multiple languages l Interoperability across multiple platforms l Incremental evolution of large legacy systems (esp. w/ multiple 3rd party software) Sapphire SAMRAI Ardra Scientific Viz DataFoundry Overture linear solvers hypre nonlinear solvers ALPS JEEP
GKK 28 CASC The End
GKK 29 CASC Work performed under the auspices of the U. S. Department of Energy by the University of California, Lawrence Livermore National Laboratory under Contract W-7405-Eng-48 UCRL-VG Apr 2001