1 On MDE to implement a Component Assembly Compiler for HPC Journées IDM, June the 7th 2011 Julien Bigot*, Christian Pérez* Laboratoire de l’Informatique.

Slides:



Advertisements
Similar presentations
Ph.D. Defense by Julien Bigot, December 6 th 2010 Generic Support of Composition Operators in Software Component Models, Application to Scientific Computing.
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Architecture Representation
A Component Based Programming Framework for Autonomic Applications Hua Liu, Manish Parashar, and Salim Hariri ICAC ‘04 John Otto Wi06 CS 395/495 Autonomic.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Modeling with the ECCF SS ● UML Profile for ECCF ● UML Redefinition Semantics ● Compliance ● Consistency ● Conformance ● Validation ● Transformation ●
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Formalizing Material Flow Diagrams How can an MDE approach be used to improve the design process of material handling systems? Robert-Jan Bijl.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Introduction to MDA (Model Driven Architecture) CYT.
1 MDWE'2008, Toulouse, France, September 30, 2008 A Comparative Analysis of Transformation Engines for User Interface Development Juan Manuel González.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
1 CCA Meeting, Januray 25th 2007 Supporting the Master-Worker Paradigm in the Common Component Architecture Hinde Lilia Bouziane, Christian Pérez, Thierry.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Hinde Bouziane – CBHPC’08 – October 2008 Marco ALDINUCCI and Marco DANELUTTO UNIPI - University of Pisa (Italy) Hinde Lilia BOUZIANE and Christian.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
SaveUML System design. System overview Possible...
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
DMDA A Dynamic Service Architecture for Scientific Computing Jesper Andersson Software Technology Group Växjö University.
Master Worker Paradigm Support in Software Component Models Hinde Bouziane, Christian Pérez PARIS Research Team INRIA/IRISA Rennes ANR CIGC LEGO (ANR-05-CICG-11)
Generative Programming. Automated Assembly Lines.
“DECISION” PROJECT “DECISION” PROJECT INTEGRATION PLATFORM CORBA PROTOTYPE CAST J. BLACHON & NGUYEN G.T. INRIA Rhône-Alpes June 10th, 1999.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
1 A Model-Driven Approach For Information System Migration Raymonde Le Delliou 1, Nicolas Ploquin 2, Mariano Belaunde 3, Reda Bendraou 4, Louis Féraud.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
On the Role of Abstract Platform in Model Driven Development* Marten van Sinderen Centre for Telematics and Information Technology, University of Twente,
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
XASTRO Metamodel. CCSDS SAWG2 Presentation Outline XASTRO-1 Metamodel XASTRO-2 Metamodel Alignment with Model Driven Architecture.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
ProActive components and legacy code Matthieu MOREL.
MDD approach for the Design of Context-Aware Applications.
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn Tel.:
1 ProActive GCM – CCA Interoperability Maciej Malawski, Ludovic Henrio, Matthieu Morel, Francoise Baude, Denis Caromel, Marian Bubak Institute of Computer.
Advanced Component Models ULCM & HLCM Julien Bigot, Hinde Bouziane, Christian Perez COOP Project Lyon, 9-10 mars 2010.
4+1 View Model of Software Architecture
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
Object-Oriented Analysis and Design
CMPE419 Mobile Application Development
Model-Driven Analysis Frameworks for Embedded Systems
Summary Background Introduction in algorithms and applications
Evaluating Compuware OptimalJ as an MDA tool
Bin Ren, Gagan Agrawal, Brad Chamberlain, Steve Deitz
Architecture Description Languages
Database System Concepts and Architecture
CMPE419 Mobile Application Development
Software Architecture & Design
Presentation transcript:

1 On MDE to implement a Component Assembly Compiler for HPC Journées IDM, June the 7th 2011 Julien Bigot*, Christian Pérez* Laboratoire de l’Informatique du Parallelisme (LIP) ENS Lyon

2 Context: High Performance Computing Scientific applications Domain specialist code Long life cycle (~30 years) Computation intensive Hardware Heterogeneous –Supercomputers –Computing clusters –Computing grids –Clouds Parallel Short life cycle (~3 years) Programming model Low level, fine-tuning of code Hand made … and remade Thermal Optics Dynamics Structural Mechanics SAN Cluster LAN WAN Supercomputer Grid Supercomputer Cluster Satellite modeling ? programming models

3 Outline Context: High Performance Computing (HPC) High Level Component Model (HLCM) Modeling and Implementation Feedback on the Model Driven Approach Conclusion

4 Programming model requirements Ease of development Domain specialist: Domain code / support code separation Long life cycle: clean code behavior and interface specification High Performance Minimal overhead Support for parallelism Hardware evolution Algorithm optimization Interaction optimization –E.g. distributed memory vs. shared memory Software Components

5 Software components Components black boxes Interactions through well defined interaction points Application Set of interconnected instances High level view of architecture Separation of concern Domain code: components Support: component model Eased reuse Well defined interface & behavior CmpACmpB a b c d c1 c2

6 Software Component Models Industrial Component Models (CORBA Component Model, Enterprise JavaBeans, …) Transparent distribution support (CORBA, JavaRMI, …) Overhead for same host components Research Component Models (Fractal, …) Interesting features (Hierarchy, Connectors, …) Features handled at runtime, additional costs High Performance Component Models (CCA, …) Acceptable overheads Low level of abstraction => Hardware adaptation complex

7 Programming model requirements Ease of development Domain specialist: Domain code / support code separation Long life cycle: clean code behavior and interface specification High Performance Minimal overhead Support for parallelism Hardware evolution Algorithm optimization Interaction optimization –E.g. distributed memory vs. shared memory Software Components Component implementation choice

8 Multiple alternative implementations Distinction type/implementation Type: name + ports Implementation: behavior Choice Depending on available hardware CmpA I1 I2

9 Programming model requirements Ease of development Domain specialist: Domain code / support code separation Long life cycle: clean code behavior and interface specification High Performance Minimal overhead Support for parallelism Hardware evolution Algorithm optimization Interaction optimization –E.g. distributed memory vs. shared memory Software Components Component implementation choice 1 st class Software Connectors with implementation choice

10 1st class software connectors 1st class entity A Name Set of roles Multiple alternative implementations Hardware optimization possible Interaction code well identified Multiple versions possible More application specific interactions UP CmpACmpB CmpA CmpB ports roles userprovider

11 Programming model requirements Ease of development Domain specialist: Domain code / support code separation Long life cycle: clean code behavior and interface specification High Performance Minimal overhead Support for parallelism Hardware evolution Algorithm optimization Interaction optimization –E.g. distributed memory vs. shared memory Software Components Algorithmic skeletons, generic programming & hierarchy Component implementation choice 1 st class Software Connectors with implementation choice

12 Generic programming & hierarchy: Algorithmic skeletons Disp Coll W W W Farm N times IO Farm

13 Programming model requirements Ease of development Domain specialist: Domain code / support code separation Long life cycle: clean code behavior and interface specification High Performance Minimal overhead Support for parallelism Hardware evolution Algorithm optimization Interaction optimization –E.g. distributed memory vs. shared memory Software Components Compilation based approach Algorithmic skeletons, generic programming & hierarchy Component implementation choice 1 st class Software Connectors with implementation choice No need for new components, only a new assembly model

14 HLCM Compilation Reuse an existing component model (L²C) HLCM: Genericity Hierarchy Connectors Multi-Implem L²C: Low Level Primitive components only Various interaction C++ MPI CORBA … Hardware description PIM PSM PDM MDA

15 HCLM (Meta)Modeling Using the Eclipse Modeling Framework (EMF) PIM Main classes: ComponentType, PortType, Connector, … Primitive implementations: abstract Some patterns identified: genericity, implementation choice 130 Ecore metaclasses (490 lines of EMFatic) 2000 utility Java lines PSM Main classes: ComponentInstance, Connexion, … References to the PIM in each instance 41 Ecore metaclasses (160 lines of EMFatic) 800 utility Java lines

16 HCLM Transformation Four step transformation Parsing HLCM: 400 lines Xtext annotated grammar Compilation: 4000 lines plain Java PSM to Backend Backend Model Dump Compilation Choosing implementations (delegated to an external “oracle”) Concretizing generic elements Flattening composites Until convergence: only primitive elements Final dump Often single hand made step Backend specific

17 Feedback (1/2) Modeling tools: huge gain of time Modeling HLCM –Initial attempt with plain Java: ~1 month work –Second attempt with Ecore: ~2 days work Direct concrete syntax to model parsing (Xtext) Ease of comprehension Most concepts intuitive with UML background Various level of modeling confusing (model vs. metamodel) –E.g. connectors –Fixed set of interactions: various connectors in the metamodel –1st class connectors: various connectors in the model –Combination predefined connectors + user defined : ??? –E.g. genericity: manipulation of metamodel elements in the model About same state

18 Feedback (2/2) Model transformation Transformation tools not ready 2 years ago (Kermeta, QVT, ATL) Plain java transformation – API not human friendly –Collection access => whole collection traversal –Omnipresent type casts (constraint not expressible in Ecore) –Error complex to associate with user error Constraint language evaluation required Real use Applications: Parallel method calls, shared memory, Domain decomposition Backends: L²C, Pure Java, CCM, Charm++, … Transformation speed: components, ≤ 10secs

19 Conclusion HLCM: a component assembly model for HPC Hierarchy, Generic Programming, Connectors, Alternative Implementations –Efficiency possible on a wide range of hardware A model based implementation –Lot of time gained –Some tools not used due to immaturity Usable in real world Perspectives / future work Re-evaluate modeling tools (ATL, OCL, …) Introduce the time dimension in HLCM ?

20

21 HLCM Transformation HLCM/L²C files L²C: Low Level Minimal costs Various interaction HLCM: Genericity Hierarchy Connectors Multi-Implem component App { content { composite { decl { Decrement_Composite D; Viewer v; Decrement d1; d1.h_log_port -- v.v_log_port; D.h_log_port -- v.v_log_port; d1.dp_dec_port -- D.du_dec_port; d1.du_dec_port -- D.dp_dec_port; set d1.Number 3; } service run { seq { exec d1.export; exec D; } component App { content { composite { decl { Decrement_Composite D; Viewer v; Decrement d1; d1.h_log_port -- v.v_log_port; D.h_log_port -- v.v_log_port; d1.dp_dec_port -- D.du_dec_port; d1.du_dec_port -- D.dp_dec_port; set d1.Number 3; } service run { seq { exec d1.export; exec D; } ParsingModel TransformationDump A T B C A A B_0 D B B_0 C B_1 D D L²C files HLCM/L²C model DEST model HLCM/L²C metamodel DEST metamodel

22 Modeling HLCM: Genericity Concepts Generic types –Has generic parameters Generic parameters –Used as a type Generic Arguments –Associate value to parameters Algorithm Copy non generic elements For each generic reference –Create a context (parameter  value) –Copy the generic element in that context A T B C A A B_0 D B B_0 C B_1 D D

23 Modeling HLCM: Alternative Implementations Distinguish component type & component implementation Component type –Generic –List of ports Component implementation –Generic –Implemented component type specialization –Content description –Primitive –Composite Choice at deployment time Match used specialization & implemented specialization Choose amongst possible CmpA A2 A1 A3 T=X T=B T=C CmpA A3 T=B component CmpA exposes { provide p; } primitive A1 implements CmpA { …} composite A3 implements CmpA { …}

24 HLCM Overview HLCM: High Level Component Model Actually a component assembly model Primitive components borrowed from an existing “backend” model HLCM Features Hierarchy: composite components Generic programming (C++ templates, Java generics) Software connectors: interactions as 1 st class concept Multiple alternative implementations for components & connectors HLCM Implementation Model based Transformation when hardware is known Generates an assembly of the backend model

25 Modeling HLCM: Genericity (1/2) Example Generic artifact –ComponentType Artifact usable as parameter –PortType Additional modifications Default values for parameters Constraints on parameter values Explicit specializations Meta-programming PortPortTypeParamPortTypeArgComponentTypePortTypeComponentInstance

26 Modeling HLCM: Alternative Implementations (1/2) PIM: Distinguish 3 concepts Type –ComponentType, name & list of ports Implementation –ComponentImplementation primitive / composite InstanceDescriptor –Composite subcomponent –Application root component PSM: 1 type Instance –ComponentInstance primitive / composite TypeImplementationInstanceDescriptorInstance