• CCA • Common Component Architecture Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000. Developments in the Common Component Architecture for Scientific Software Benjamin A. Allan CCA Forum April 9, 2007
34
Embed
Developments in the Common Component Architecture for ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
• CCA• Common Component Architecture
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company,for the United States Department of Energy’s National Nuclear Security Administration
under contract DE-AC04-94AL85000.
Developments in the Common Component Architecture
for Scientific Software
Benjamin A. AllanCCA Forum
April 9, 2007
• CCA• Common Component Architecture
Overview
• Scalability in scientific software & components• Introduce CCA• Show applications and tools• The CCA specification
– Current state.– Items we expect for CCA 1.0.
• Community development• What could you do with CCA?
• CCA• Common Component Architecture
Human Minds Do Not Scale Well
Date
Softw
are
Com
plex
ity(#
lin
es 1
pro
gram
mer
can
man
age)
102
103
104
105
106
10719
45
1955
1965
1975
1985
1995
2005
101
100
10-1
10-2
Assemblers
Compilers
Structured Programming
Object-Oriented
Components
Practical high bound
108
We write imperfect
software
…but we must write more of it.
• CCA• Common Component Architecture
In Industry, Most Corporate Software is Component Software
Date
Softw
are
Com
plex
ity (#
line
s)
102
103
104
105
106
10719
45
1955
1965
1975
1985
1995
2005
101
100
10-1
10-2
Components
108
Components are for when complexity exceeds the power of a single human mind
Loose coupling and robust interfaces are more effective, including within single teams
Object-Oriented1980’s Object-oriented failed:1. Assumes a single language2. Implementation details
pollute the interfaces
1980’s Object-oriented failed:1. Assumes a single language2. Implementation details
pollute the interfaces
Components provide1. Code generation (stronger
interfaces & multiple languages)2. Additional runtime services to
support dynamic & loose coupling
Components provide1. Code generation (stronger
interfaces & multiple languages)2. Additional runtime services to
support dynamic & loose coupling
• CCA• Common Component Architecture
What is a component?
Interface definition language(IDL)
Fortran, C, C++,Java, Python Private code and data
Public interface(functions only)
Framework plug-in
• CCA• Common Component Architecture
What is a framework?
• A simple manager of component connections, &• A set of components specific to the application.
• CCA• Common Component Architecture
Code Reuse is NOT the Reason for Components
• Science and Research – Maintain correctness during many changes
• New students• New algorithms• New applications
• Corporate or for profit organization– Time to Market
Components provide strong interface boundaries & loose coupling (libraries do not).
• CCA• Common Component Architecture
Who and What is CCA?Our Goal:To provide an open forum defining multi-institutional, multi-disciplinary component architecture standards and tools enabling complex, maintainable, ultra-scale simulations through modern software practices and tools. Promote and support development of domain-specific common interfaces.
Approach: Multi-laboratory teams combine independent plug-&-play codes to create scalably engineered simulation systems.
Impact: Used in the USA and internationally for new science by scientists and educators in combustion, quantum chemistry, fusion, climate, astrophysics, fission reactor simulation, performance modeling & advanced solvers.
Institutions: ANL, JPL, LANL, LBNL, LLNL, NASA/Goddard,ORNL, PNNL, SUNY,Indiana U, U. Oregon,U. Utah,U. Illinois, Tech-X, …
Example Simple Numeric Integration Rule Component file:///C:/Documents%20and%20Settings/Administrator/Desktop/guide-html-
0.4.1_rc1/ch04s05.html#task2:integrator-mod
Object-oriented F90 Features:Private data for classes and class instances.Calling python/c/c++ subroutines just as F90 subroutines.Exception handling.Inheritance from other classes and even languages.