210 likes | 328 Views
A Pictorial Introduction to Components in Scientific Computing. Input. Output. Program. Once upon a time. Bottle Neck. As Scientific Computing grew. Tried to ease the bottle neck. 1. 1. 2. 2. 1. 3. 3. 4. 4. 2. 4. 3. SPMD was born. But it isn’t easy!!!. But it isn’t
E N D
A Pictorial Introduction to Components in Scientific Computing
Input Output Program Once upon a time...
Bottle Neck As Scientific Computing grew...
1 1 2 2 1 3 3 4 4 2 4 3 SPMD was born.
But it isn’t easy!!! But it isn’t easy!!! 1 1 2 2 1 3 3 4 4 2 4 3 SPMD worked.
Input Input email client spreadsheet browser graphics Output editor Unicode Program multimedia database Meanwhile, corporate computing was growing in a different way
email client spreadsheet browser graphics editor Unicode multimedia database This created a whole new set of problems complexity • Interoperability across multiple languages • Interoperability across multiple platforms • Incremental evolution of large legacy systems (esp. w/ multiple 3rd party software)
So what’s a component ??? Implementation : No Direct Access Interface Access : Generated by Tools Matching Connector : Assigned by Framework Hidden from User
Language & Platform independent interfaces C Java F77 C++ Automatically generated bindings to working code Python 1. Interoperability across multiple languages
What if the source to this one part is lost??? 2. Interoperability Across Multiple Platforms Imagine a company migrates to a new system, OS, etc.
These wires are very, very smart! Transparent Distributed Computing internet internet
v 1.0 v 3.0 v 2.0 3. Incremental Evolution With Multiple 3rd party software
v 1.0 v 3.0 v 2.0 Now suppose you find this bug...
2.0 v 1.0 v 3.0 v 2.0 2.1 Good news: an upgrade available Bad news: there’s a dependency
Great News: Solvable with Components 2.0 v 3.0 2.1
v 1.0 2.0 2.1 Great News: Solvable with Components v 3.0
SAMRAI DataFoundry JEEP Sapphire Scientific Viz Ardra Overture nonlinear solvers ALPS hypre linear solvers Why Components for Scientific Computing Complexity • Interoperability across multiple languages • Interoperability across multiple platforms • Incremental evolution of large legacy systems (esp. w/ multiple 3rd party software)
Science Industry ? The Model for Scientific Component Programming CCA