Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

Slides:



Advertisements
Similar presentations
Institute of Computer Science AGH Towards Multilanguage and Multiprotocol Interoperability: Experiments with Babel and RMIX Maciej Malawski, Daniel Harężlak,
Advertisements

GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
IARnet: A General Framework for Porting Scientific Applications Into Distributed Computing Environment Oleg Sukhoroslov, Vladimir Voloshinov Institute.
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.
Course Instructor: Aisha Azeem
Client/Server Software Architectures Yonglei Tao.
Center for Component Technology for Terascale Simulation Software (aka Common Component Architecture) (aka CCA) Rob Armstrong & the CCA Working Group Sandia.
Cracow Grid Workshop 2003 Institute of Computer Science AGH A Concept of a Monitoring Infrastructure for Workflow-Based Grid Applications Bartosz Baliś,
© Fujitsu Laboratories of Europe 2009 HPC and Chaste: Towards Real-Time Simulation 24 March
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.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
An Introduction to the Common Component Architecture for the poster: A Study of the Common Component Architecture (CCA) Forum Software Daniel S. Katz,
LLNL-PRES-XXXXXX This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.
A Hybrid Decomposition Scheme for Building Scientific Workflows Wei Lu Indiana University.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
NeSC Grid Apps Workshop Exposing Legacy Applications as OGSI Components using pyGlobus Keith R. Jackson Distributed Systems Department Lawrence Berkeley.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri.
Computational Design of the CCSM Next Generation Coupler Tom Bettge Tony Craig Brian Kauffman National Center for Atmospheric Research Boulder, Colorado.
CCA Common Component Architecture CCA Forum Tutorial Working Group Components for Scientific.
CASC This work was performed under the auspices of the U.S. Department of Energy by University of California Lawrence Livermore National Laboratory under.
DEVS Namespace for Interoperable DEVS/SOA
CCA Common Component Architecture CCA Forum Tutorial Working Group Welcome to the Common.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Presented by High Productivity Language and Systems: Next Generation Petascale Programming Wael R. Elwasif, David E. Bernholdt, and Robert J. Harrison.
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.
CCA Common Component Architecture CCA Forum Tutorial Working Group Introduction to Components.
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)
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.
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.
Extreme! Computing Lab, Dept. of Computer Science, Indiana University 1 Programming the Grid with Components Madhu Govindaraju Aleksander Slominski Dennis.
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Integrating Large-Scale Distributed and Parallel High Performance Computing (DPHPC) Applications Using a Component-based Architecture Nanbor Wang 1, Fang.
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
1 1 Office of Science Jean-Luc Vay Accelerator Technology & Applied Physics Division Lawrence Berkeley National Laboratory HEP Software Foundation Workshop,
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.
117 December 2001Pacific Northwest National Laboratory Component-Based Software for High-Performance Computing: An Introduction to the Common Component.
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.
LLNL-PRES This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.
Presented by The Harness Workbench: Unified and Adaptive Access to Diverse HPC Platforms Christian Engelmann Computer Science Research Group Computer Science.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Center for Component Technology for Terascale Simulation Software (CCTTSS) 110 April 2002CCA Forum, Townsend, TN CCA Status, Code Walkthroughs, and Demonstrations.
Toward a Distributed and Parallel High Performance Computing Environment Johan Carlsson and Nanbor Wang Tech-X Corporation Boulder,
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.
Wael Elwasif ORNL/IU Fusion Frameworks Workshop 1 Integrating Fusion Codes Using CCA – an ORNL LDRD Project Wael R. Elwasif & Lee Berry Computer Science.
Performance-Driven Interface Contract Enforcement for Scientific Components 10th International Symposium on Component-Based Software Engineering Medford,
“Port Monitor”: progress & open questions Torsten Wilde and James Kohl Oak Ridge National Laboratory CCA Forum Quarterly Meeting Santa Fe, NM ~ October.
Reference Implementation of the High Performance Debugging (HPD) Standard Kevin London ( ) Shirley Browne ( ) Robert.
Distribution and components
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Department of Intelligent Systems Engineering
C++/Java/COM Interoperability
Common Component Architecture (CCA)
Presentation transcript:

Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries A Component Architecture for High Performance Computing David E. Bernholdt, Wael R. Elwasif, and James A. Kohl Oak Ridge National Laboratory Thomas G. W. Epperly Lawrence Livermore National Laboratory Research supported by the Mathematics, Information and Computational Sciences Office, Office of Advanced Scientific Computing Research, U.S. Dept. of Energy under contract no. DE-AC05-00OR22725 with UT-Battelle, LLC and W-7405-Eng-48 with the Univ. of California. LLNL release UCRL-PRES

2 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Background & Motivation  Component environments provide a means to manage the complexity of large-scale software systems  Commodity component models have limitations for HPC use  CORBA, COM/DCOM, Enterprise JavaBeans  Human timescales, no parallelism, language limitations, larger burden on legacy code  Visualization tools  AVS, OpenDX, VTK, etc.  Data-flow based  Domain-specific component environments  Overture, HDDA/DAGH, POOMA, Sierra, Hypre, SAMR  Hard to get interoperability & reuse on large scale (esp. cross-cutting components)

3 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries 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

4 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries CCA Concepts: Components  A component encapsulates a useful chunk of functionality  Presents a well-defined interface to the outside world  Outside world knows nothing of internal implementation  “Size” of component up to architect/developer  Based on OO concepts  Conceptually similar to a library, but not the same

5 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries CCA Concepts: Ports  Components interact through well-defined interfaces, or ports  Ports follow a uses/provides pattern  A component may use a port (interface) provided by another  Components can provide ports by implementing the interface  Components may use and provide any number of ports  Note: Links denote a caller/callee relationship, not dataflow!  e.g., linSolve port might contain: solve(in A, out x, in b) SolverComponent linSolveusesSolver PhysicsComponent

6 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries 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 of 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

7 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries 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 …

8 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries 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

9 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries CCA Concepts: Parallelism  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)  Also supports MPMD/MCMD P0P1P2P3 Components: Blue, Green, Red Framework: Beige Framework stays “out of the way” of component parallelism

10 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries CCA Concepts: Language Interoperability  Existing language interoperability approaches are “point- to-point” solutions  Babel provides a unified approach in which all languages are considered peers  Babel used primarily at interfaces C C++ f77 f90 Python Java Babel C C++ f77 f90 Python Java

11 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Performance Considerations  Calls between components  Framework  Language interoperability  Overhead on function invocation, not execution  In Babel, some argument types require adaptation between languages: Array, String, Complex, etc.  CCA model is "embarrassingly parallel"  Not currently a performance issue  We plan to keep it that way!

12 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Environments Measured  Native languages  C calling C  C++ calling C++  Fortran77 calling Fortran77  Ccaffeine (C++-based CCA framework)  Same process, inter-component calls  Babel  All combinations of C, C++, F77 calling each other  OmniORB (C++-based CORBA environment)

13 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Native Languages: Baseline Results  F77 calls to empty functions with various arguments average 17 ns each  C timings:  "simple" args: same as F77  average 1.1x F77  C++ timings:  "simple" args: 1.2x F77  average 1.8x F77  virtual function calls average 2.8x F77

14 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Babel Results (Relative to Native F77) Calling Lang. Called Lang. "Simple" Args. Overall Average CC C++C F77C CC C F77C CF C++F F

15 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Babel Adaptation Costs ArgumentC to C Time (ns) C++ to C++ (Rel. C to C) F77 to F77 (Rel. C to C) Array Bool Complex (by value) Double Complex (by ref) Double Complex (by value) Ordered Array String (by ref) String (by value)

16 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Comparing Environments Native F77 Time (ns) Babel C to C Rel. F77 Ccaffeine Rel. F77 OmniORB Rel. F77 "Simple" Args Overall Average

17 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Observations  Overhead equivalent to wrapping each call in several extra layers of function calls  Only significant for frequently called functions (at interfaces) with little work  In "full" CCA environment (Babel integrated w/ framework), overhead is just Babel virtual function call  Possibilities to reduce overhead where performance really critical  Use native language rather than Babel  Change design so calls are intra-component

18 Center for Component Technology for Terascale Simulation Software 22 June 2002Workshop on Performance Optimization via High Level Languages and Libraries Summary  Component environments are intended to help manage the complexity of building large-scale software systems  CCA is specifically designed for the needs of large- scale high-performance scientific simulation  Performance is a primary consideration  Design allows implementations to minimize overheads  Actual implementations provide good performance  For more info on CCA visit