210 likes | 340 Vues
This introduction to components in scientific computing explores the evolution of input/output programming and the emergence of SPMD (Single Program Multiple Data) to tackle bottlenecks in computing. It highlights the growing complexity of corporate computing systems and the challenges posed by interoperability across various languages and platforms. The text delves into how component technology offers solutions to these issues, emphasizing the importance of seamless integration and the incremental evolution of legacy systems. The future of scientific computing technology hinges on these advancements.
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