117 December 2001Pacific Northwest National Laboratory Component-Based Software for High-Performance Computing: An Introduction to the Common Component.

Slides:



Advertisements
Similar presentations
Current Progress on the CCA Groundwater Modeling Framework Bruce Palmer, Yilin Fang, Vidhya Gurumoorthi, Computational Sciences and Mathematics Division.
Advertisements

1 Coven a Framework for High Performance Problem Solving Environments Nathan A. DeBardeleben Walter B. Ligon III Sourabh Pandit Dan C. Stanzione Jr. Parallel.
Presented by Scalable Systems Software Project Al Geist Computer Science Research Group Computer Science and Mathematics Division Research supported by.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Course Instructor: Aisha Azeem
Center for Component Technology for Terascale Simulation Software (aka Common Component Architecture) (aka CCA) Rob Armstrong & the CCA Working Group Sandia.
Commodity Grid (CoG) Kits Keith Jackson, Lawrence Berkeley National Laboratory Gregor von Laszewski, Argonne National Laboratory.
Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.
1 TOPS Solver Components Language-independent software components for the scalable solution of large linear and nonlinear algebraic systems arising from.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
A Hybrid Decomposition Scheme for Building Scientific Workflows Wei Lu Indiana University.
An Introduction to Software Architecture
Center for Component Technology for Terascale Simulation Software (CCTTSS) 110 April 2002CCA Forum, Townsend, TN Interfaces: The Key to Code Reuse and.
Center for Programming Models for Scalable Parallel Computing: Project Meeting Report Libraries, Languages, and Execution Models for Terascale Applications.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
CoG Kit Overview Gregor von Laszewski Keith Jackson.
CCA Common Component Architecture CCA Forum Tutorial Working Group Welcome to the Common.
CCA Common Component Architecture CCA Forum Tutorial Working Group Contributors: Language Interoperability Using Gary.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
SIAM Computational Science and Engineering1 10 February Components for Scientific Computing: An Introduction David E. Bernholdt Computer Science.
CCA Common Component Architecture CCA Forum Tutorial Working Group Welcome to the Common.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Overview of Recent MCMD Developments Jarek Nieplocha CCA Forum Meeting San Francisco.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Components for Beam Dynamics Douglas R. Dechow, Tech-X Lois Curfman McInnes, ANL Boyana Norris, ANL With thanks to the Common Component Architecture (CCA)
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Building an Electron Cloud Simulation using Bocca, Synergia2, TxPhysics and Tau Performance Tools Phase I Doe SBIR Stefan Muszala, PI DOE Grant No DE-FG02-08ER85152.
SAP Participants: Douglas Dechow, Tech-X Corporation Lois Curfman McInnes, Boyana Norris, ANL Physics Collaborators: James Amundson, Panagiotis Spentzouris,
Systems Analysis and Design in a Changing World, 3rd Edition
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
NIH Resource for Biomolecular Modeling and Bioinformatics Beckman Institute, UIUC NAMD Development Goals L.V. (Sanjay) Kale Professor.
Update on the CCA Groundwater Simulation Framework: the BOCCA Experience Bruce Palmer, Yilin Fang, Vidhya Gurumoorthi, James Fort, Tim Scheibe Computational.
1 1 What does Performance Across the Software Stack mean?  High level view: Providing performance for physics simulations meaningful to applications 
CCA Common Component Architecture CCA Forum Tutorial Working Group Welcome to the Common Component Architecture Tutorial.
CCA Common Component Architecture CCA Forum Tutorial Working Group A Look at More Complex.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
ORNLKohl/ Mux and MxN: A Revelation… (a.k.a. “Collective” is Dead? :-o) James Arthur Kohl David E. Bernholdt Oak Ridge National Laboratory Thursday,
Distributed Components for Integrating Large- Scale High Performance Computing Applications Nanbor Wang, Roopa Pundaleeka and Johan Carlsson
Cracow Grid Workshop, November 5-6, 2001 Concepts for implementing adaptive finite element codes for grid computing Krzysztof Banaś, Joanna Płażek Cracow.
Connections to Other Packages The Cactus Team Albert Einstein Institute
1 1 Office of Science Jean-Luc Vay Accelerator Technology & Applied Physics Division Lawrence Berkeley National Laboratory HEP Software Foundation Workshop,
CCA Common Component Architecture CCA Forum Tutorial Working Group A Look at More Complex.
BioPSE NCRR SCIRun2 -THE PROJECT -OBJECTIVES -DEVELOPMENTS -TODAY -THE FUTURE.
J. Ray, S. Lefantzi and H. Najm Sandia National Labs, Livermore Using The Common Component Architecture to Design Simulation Codes.
CCA Common Component Architecture CCA Forum Tutorial Working Group An Overview of Components.
CCA Common Component Architecture Distributed Array Component based on Global Arrays Manoj Krishnan, Jarek Nieplocha High Performance Computing Group Pacific.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
C OMPUTATIONAL R ESEARCH D IVISION 1 Defining Software Requirements for Scientific Computing Phillip Colella Applied Numerical Algorithms Group Lawrence.
Center for Component Technology for Terascale Simulation Software (CCTTSS) 110 April 2002CCA Forum, Townsend, TN CCA Status, Code Walkthroughs, and Demonstrations.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Center for Component Technology for Terascale Simulation Software (CCTTSS) 110 April 2002CCA Forum, Townsend, TN This work has been sponsored by the Mathematics,
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
“Port Monitor”: progress & open questions Torsten Wilde and James Kohl Oak Ridge National Laboratory CCA Forum Quarterly Meeting Santa Fe, NM ~ October.
Presented by SciDAC-2 Petascale Data Storage Institute Philip C. Roth Computer Science and Mathematics Future Technologies Group.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
Department of Intelligent Systems Engineering
Common Component Architecture (CCA)
Presentation transcript:

117 December 2001Pacific Northwest National Laboratory Component-Based Software for High-Performance Computing: An Introduction to the Common Component Architecture David E. Bernholdt Computer Science and Mathematics Division, Oak Ridge National Laboratory and Center for Component Technology for Terascale Simulation Software

2 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Acknowledgements  Members of the CCTTSS, especially  Rob Armstrong, SNL  Lori Frietag, ANL  Jim Kohl, ORNL  Lois Curfman McInnes, ANL  Boyanna Norris, ANL  Jaideep Ray, SNL  This work is sponsored by…  US Dept. of Energy  Office of Science  Advanced Scientific Computing Research (ASCR)  Mathematics, Information and Computer Science (MICS)  Scientific Discovery through Advanced Computing (SciDAC) program

3 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Challenges in Modern Scientific Software Development  Desire for rapid development cycle  Diversity of languages and tools  What can be used together?  Ability to reuse code from inside or outside organization  Parallel computing significantly increases algorithmic complexity  Where do you find the expertise in all disciplines your code might require?  Architectural complexity and diversity of modern MPPs  Increasing capability of computers leads to new expectations of simulation  Higher fidelity, greater sophistication  Extension to multi-scale and multi-physics simulations  Coupling of simulations

4 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Managing Software Complexity: Object-Oriented Programming  OO design is a well-established, popular, and widely used methodology  Often sold as a means for managing software complexity  Fundamental ideas: Modularity, Abstraction, Encapsulation, Hierarchy  OO programming does not require OO languages, but langauge support can be very helpful  Support for encapsulation, hierarchy, etc.  Objects can simplify abstraction and encapsulation, facilitating reuse  But deep object hierarchies make reuse harder  OO languages are still rather immature  Reliance on OO language features can make language interoperability hard

5 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Component-Based Programming  Based on OO ideas, but at a coarser level  Components encapsulate well-defined units of reusable functionality (in OO sense, often a collection of objects)  They interact through well-defined interfaces  Separates interface from its implementation: “Good fences make good neighbors”  Components improve modularity and reuse  Provides for “plug and play” HPC code.  Facilitates exchange of components between groups  Facilitates interdisciplinary collaboration in a single app.  Allows you to focus on your area of interest/expertise  Intended to make it easier to compose software into a working application  Not a magic bullet  Does not alter algorithms: does not speed up their development, or eliminate bugs. Does not make programming easier

6 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory 21 st Century Application Discretization Algebraic Solvers Parallel I/O Grids Data Reduction Physics Modules Optimization Derivative Computation Collaboration Diagnostics Steering Visualization Adaptive Solution Picture courtesy of Lois Curfman McInnes, ANL

7 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Commodity Component Models  Component models are common in visualization environments  AVS, Data Explorer  dataflow-based  Component-based software development has taken the commercial/industrial world by storm.  CORBA, COM/DCOM, Enterprise JavaBeans  Unfortunately, these systems are not generally suitable for high-performance scientific computing  Focus exclusively on local & distributed computing  No concept of parallelism  High overheads, even for local operation  Often platform or language-specific

8 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory The Common Component Architecture  A component model specifically designed for high-performance computing  Supports both parallel and distributed applications  Designed to be implementable without sacrificing performance  Minimalist approach makes it easier to componentize existing software

9 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory CCA Concepts: Ports  Components interact through well-defined interfaces, or ports  In OO language, a port is a class  In Fortran languages, a port is a bunch of subroutines  A given component may provide a port – implement the class or subroutines  Another component may use that port – call methods or subroutines in the port.  Links denote a caller/callee relationship, not dataflow!  e.g., linSolve port might contain: solve(in A, out x, in b) SolverComponent linSolveusesSolver PhysicsComponent

10 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory A More Complex Example  A component may provide and/or use multiple ports  A component may provide some ports and use others  A component may provide or use multiple instances of the same port computeAx PhysicsComponent configModel SolverComponent1 linSolveneedAx SolverComponent2 linSolveneedAx usesSolver2 DriverComponent configPhys usesSolver1

11 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory CCA Concepts: Frameworks  The framework provides the means to “hold” components and compose them into applications  The framework is the application’s “ main ” or “ program ”  Frameworks allow exchange ports among components without exposing implementation details  Frameworks may support sequential, distributed, or parallel execution models, or any combination they choose  Frameworks provide a small set of standard services to components  BuilderServices allow programs to compose CCA apps  Frameworks may make themselves appear as components in order to connect to components in other frameworks

12 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory What Does This Look Like?  Launch framework (w/ or w/o GUI)  Instantiate components required for app.  Connect appropriate provided and used ports  Start application (i.e. click Go port) createTaoSolverTAOSolver createMinsurfDriverMinsurfDriver … connectMinsurfDriverOptModelMinsurfModelOptModel connectMinsurfDriverOptSolverTAOSolverOptSolver …

13 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory What Makes a CCA Component?  All CCA-compliant components must implement a setServices() method  Framework invokes setServices when component is instantiated  Provides component with CCA Services object – the external world (as the framework knows it) Framework SolverComponent CCA Services SC void SolverComponent:: setServices(gov::cca:: Services *svc){…}  User instantiates SolverComponent  Framework calls SC’s setServices method with a CCA Services object – the component’s window on the external world

14 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory SC Provides a solverPort Framework  Within setServices, component declares ports it provides and uses  addProvidesPort places port in CCA Services – makes it visible the framework  Other components cannot yet use solverPort!  setServices completes and control returns to framework to instantiate other components SolverComponent CCA Services SC gov::cca::PortInfo * pInfo; pInfo = svc->createPortInfo( “linSolve”,”solverPort”); err = svc->addProvidesPort( this, pInfo); linSolve solverPort

15 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory PC Wants to Use a solverPort Framework  User instantiates PhysicsComponent  Framework calls PC’s setServices  registerUsesPort informs the framework that we want to connect to a component providing a solverPort  setServices completes, control returns to framework  PC cannot see SolverComponent or the solverPort it provides PhysicsComponent CCA Services PC gov::cca::PortInfo * pInfo; pInfo = svc->createPortInfo( “usesSolver”,”solverPort”); err = svc->registerUsesPort( pInfo); usesSolver solverPort

16 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Framework PhysicsComponent CCA Services PC SolverComponent CCA Services SC linSolve solverPort User Instructs Framework to Connect solverPort between User and Provider usesSolver solverPort linSolve solverPort ccafe> connectPhysicsComponentusesSolver \ SolverComponentlinSolve

17 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Framework PhysicsComponent CCA Services PC SolverComponent CCA Services SC linSolve solverPort gov::cca::Port * pSolver; pSolver = svc->getPort( “usesSolver"); SolverPort * solver; solver =dynamic_cast (pSolver); PC Gets the Port from its CCA Services linSolve solverPort usesSolver solverPort

18 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Framework PhysicsComponent CCA Services PC SolverComponent CCA Services SC linSolve solverPort solver->solve(A, x, b); void SolverComponent:: solve(A, x, b) {…} PC Can Finally Call solve on SC’s solverPort linSolve solverPort usesSolver solverPort

19 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Important Features of CCA Component Model  Fences between components  Components must declare both what they provide and what they use  Components cannot interact until ports are connected  No mechanism to call anything not part of a port  Ports preserve high performance direct connection semantics…  …While also allowing distributed computing Component 1Component 2 Provides/Uses Port Direct Connection Component 1 Component 2 Uses Port Provides Port Network Connection

20 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Prototype CCA Frameworks  CCAT, Indiana University, Dennis Gannon  Distributed  Network connection  CCAFFEINE, Sandia National Laboratories, Rob Armstrong  SPMD/SCMD parallel  Direct connection  SCIRun/Uintah, University of Utah, Steve Parker  Parallel, multithreaded  Direct connection

21 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory CCA Concepts: Direct Connection  Components loaded into separate namespaces in same address space (process) from shared libraries  getPort call returns a pointer to the port’s function table  Invoking a method on a port is equivalent to a C++ virtual function call: lookup function, invoke  Maintains performance (lookup can be cached)

22 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory CCA Concepts: SCMD  Single component multiple data (SCMD) model is component analog of widely used SPMD model  Each process loaded with the same set of components wired the same way  Different components in same process “talk to each” other via ports and the framework  Same component in different processes talk to each other through their favorite communications layer (i.e. MPI, PVM, GA) P0P1P2P3 Components: Blue, Green, Red Framework: Beige

23 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Current Status of CCA  Specification version 0.5  Working prototype frameworks  Working multi-component parallel and distributed demonstration applications  Draft specifications for  Basic scientific data objects  MxN parallel data redistribution  SC01 demonstrations  four different “direct connect” applications, add’l distributed  DC demos: 31 distinct components, up to 17 in any single application, 6 used in more than one application  Components leverage and extend parallel software tools including CUMULVS, GrACE, LSODE, MPICH, PAWS, PETSc, PVM, SUMAA3d, TAO, and Trilinos.

24 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Solution of an unconstrained minimization problem (determining minimal surface area given boundary constraints) using the TAOSolver optimization component TAOSolver uses linear solver components that incorporate abstract interfaces under development by the Equation Solver Interface (ESI) working group; underlying implementations are provided via the new ESI interfaces to parallel linear solvers within the PETSc and Trilinos libraries. These linear solver components are employed in the other two applications as well.

25 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Solution of a two-dimensional heat equation on a square domain using an adaptive structured method. IntegratorLSODE provides a second-order implicit time integrator, and Model provides a discretization. The remaining components are essentially utilities that construct the global ODE system or adaptors that convert the patch-based data structures of the mesh to the globally distributed array structure used for runtime visualization.

26 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Solution of a time- dependent PDE using a finite element discretization on an unstructured mesh IntegratorLSODE provides a second-order implicit time integrator, and FEMDiscretization provides a discretization. This application (and the other two applications as well) use the DADFactory component to describe the parallel data layout so that the CumulsMxN data redistribution component can then collate the data from a multi-processor run to a single processor for runtime visualization.

27 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory The CCA Forum  The Common Component Architecture is merely a specification for what is required to be a CCA component and a CCA framework  Specification determined by the CCA Forum  Open membership  Face-to-face meetings quarterly  Voting privileges based on attendance at recent meetings  CCA Forum has been meeting regularly since January 1998  Next meeting: Bishop’s Lodge, Santa Fe, NM  9 January 2002 – working groups & tutorial,  January 2002 – general Forum meeting

28 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory The Center for Component Technology for Terascale Simulation Software (CCTTSS)  A SciDAC Integrated Software Infrastructure Center (ISIC)  Mission: Advance research in high-performance component technology and bring CCA from a conceptual prototype to a full-fledged production- quality environment  Participants:  Argonne, Livermore, Los Alamos, Oak Ridge, Pacific Northwest, and Sandia National Laboratories;  Indiana University, and University of Utah

29 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory CCTTSS’s R&D Agenda  Frameworks  Integration of prototype frameworks  Language interoperability tools  Component deployment  Scientific Components  Abstract interfaces and component implementations  Scientific data; Linear, nonlinear, and optimization solvers; Steering and visualization; Multi-threading and load redistribution; Fault tolerance  Quality of service research  MxN Parallel Data Redistribution  Applications Integration  Chemistry and Climate work within CCTTSS  Close collaboration with other SciDAC infrastructure projects (especially TOPS, TSTT)  Strong liaison with adopting groups

30 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory CCA Concepts: MxN Parallel Data Redistribution  Share Data Among Coupled Parallel Models  Disparate Parallel Topologies (M processes vs. N)  e.g. Ocean & Atmosphere, Solver & Optimizer…  e.g. Visualization (Mx1, increasingly, MxN) Visualization Parallel Model Coupling

31 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory MxN: The Problem M=4 N=9

32 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory MxN Research Activities  Distributed data descriptors  Uniform langauge for expressing distribution  Draft specification for dense multi-dimensional arrays  MxN port  Draft specification completed, implemented  Minimal intrusion to “instrument” component, third-party control possible  Multiple data fields, exchange in either direction  One-shot or repeated transfer  Future  Framework-based solutions  Higher-level coupling, account for units of data, spatial and termporal interpolation, etc.

33 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory CCA Concepts: Language Interoperability  Existing language interoperability approaches are “point-to-point” solutions Java JNI Native SWIG/SILOON Platform Dependent Python Library C C++ f77 f90 Python Java Arrows indicate direction of supported function calls

34 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Language Interoperability w/ Babel  Babel provides a unified approach in which all languages are considered peers C C++ f77 f90 Python Java Babel Somewhat similar to the CORBA approach in the business domain version solverPort 1.0; package solverPort { class Solver { int solve(inarray A, outarray x, inarray b); } solverPort.sidl

35 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Using Babel Component WriterComponent User Babel Implementation Source Code Implementation FileOther Files Babel Libraries Babel Header File SIDLUser Source Code Other Files Compiler Linker SolverComponent Compiler Linker PhysicsComponent #include… Developer inserts source into file

36 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Summary  Components promote modularity & reuse, allow developers to focus on their areas of expertise  CCA is a component model targeted specifically to the needs of high-performance computing – supports direct connection of components (as well as distributed computing)  Components exchange ports following a uses- provides design pattern.  Specification intentionally places minimal requirements on components  1 additional method to become a component  2 calls to declare a used or provided port  2 calls required to get a port for use  Useful prototypes exist, applications being developed  CCTTSS mission to bring CCA from prototype to production-quality system

37 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Information Pointers    Mailing list:  CCTTSS contacts: Lead PIRob FrameworksScott Scientific Data ComponentsLois MxN Data RedistributionJim Applications IntegrationDavid PNNL PIJarek

38 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory The End

39 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Creating a Component Using Babel babel -sF77 solverPort.sidl -olib Arguments: 1.Language of “server” (implementation) 2.Input SIDL file 3.Output directory subroutine solverPort_Solver__ctor_impl(self) implicit none integer*8 self subroutine solverPort_Solver__dtor_impl(self) implicit none integer*8 self subroutine solverPort_Solver_solve_impl(self, A, x, b, retval) implicit none integer*8 self, A, x, b integer*4 retval solverPort_Solver_Impl.f Class Constructor Class Destructor Solve Implementation babel.make makefile SIDL_BaseClass_fStub.c SIDL_BaseException_fStub.c SIDL_BaseInterface_fStub.c SIDL_DLL_fStub.c SIDL_Loader_fStub.c solverPort_IOR.h solverPort_Solver_fSkel.c solverPort_Solver_fStub.c solverPort_Solver_Impl.f solverPort_Solver_IOR.c solverPort_Solver_IOR.h

40 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory Using a Babel-Created Component babel -cC solverPort.sidl Arguments: 1.Language of “client” (user) 2.Input SIDL file babel.make solverPort.h solverPort_IOR.h solverPort_Solver.h solverPort_Solver_IOR.c solverPort_Solver_IOR.h solverPort_Solver_Stub.c #include “solverPort.h” … solverPort_Solver_solve(A, x,b); … usesSolver.c subroutine solverPort_Solver_solve_impl(self, A, x, b, retval) solverPort_Solver_Impl.f Babel

41 Oak Ridge National Laboratory 17 December 2001Pacific Northwest National Laboratory InstitutionFrameworks Scott Kohn, LLNL Parallel Components Lois McInnes, ANL MxN Jim Kohl, ORNL Applications David Bernholdt, ORNL ANL Lois Curfman McInnes Low-level servicesData Components Optimization Nonlinear Solvers Climate Indiana Dennis Gannon Distributed Framework Linear Solvers LANL Craig Rasmussen Component LLNL Scott Kohn Language Interoperability Component Repository Framework ORNL David Bernholdt, Jim Kohl Fault Tolerance Visualization and Steering ComponentClimate Liaison PNNL Jarek Nieplocha Data ComponentsChemistry SNL Rob Armstrong (Lead PI) SCMD FrameworkData ComponentsChemistry Utah Steve Parker Builder Service Thread Satefy GUI ComponentFramework