Overview of Unified Lego Component Model and High-Level Component Model: Concepts and Implementations
160 likes | 294 Vues
This document offers a comprehensive overview of the Unified Lego Component Model (ULCM) and the High-Level Component Model (HLCM). It introduces essential concepts of hierarchical component models, port types, client/server interfaces, and master-worker architectures. It also details various implementations, including parsing methodologies, dynamic component creation, and optimization strategies. The ULCM serves as a framework for building modular and scalable systems, while the HLCM emphasizes genericity and flexibility in component interaction. Readers will gain insights into shared data management, connectors, and advanced workflows.
Overview of Unified Lego Component Model and High-Level Component Model: Concepts and Implementations
E N D
Presentation Transcript
Advanced Component ModelsULCM & HLCM Julien Bigot, Hinde Bouziane, Christian Perez COOP Project Lyon, 9-10 mars 2010
Unified Lego Component Model Hierarchy, Shared Data, Master-Workers & Workflows Hinde Bouziane & Co
ULCM in a nutshell • Defined & implemented during ANR LEGO • http://padico.gforge.inria.fr/ulcm • A hierarchical component model • Primitive components technology not defined • Composite components are just containers • No membrane • Four kinds of ports • Client/Server: Object interfaces • Attributes: Data types • Access/Share: Shared data types • Inputs/Outputs: Data Types of the component task • Master-workers • Collections of a component types • Workflow in composite • Particular implementation of a service COOP - ULCM & HLCM overview - C. Perez
ULCM: a primitive example component HelloWorld { ports { attributename=an_attribute type="a_type"; servername=a_server_port type="interface1"; clientname=a_client_port type="interface2"; inputsname=an_in_port type="a_data_type1"; outputsname=an_out_port type="a_data_type2"; } content { primitiveclass="ulcm.tests.HelloWorld“ csd="WE.csd" implref="HW_omni_exe_id"; } } COOP - ULCM & HLCM overview - C. Perez
C1 D ULCM: a composite example componentaComposite { ports { ... } decl { Component1 a; Component2 c; Component6 c1; c.p1 – c1.p2; set a.b 4; ... } servicerun { seq { Component4 a1; set a1.p -- a.q; exec a; parallel { section: exec b; section: exec c; } exec d; } } start A1 A B C end aComposite COOP - ULCM & HLCM overview - C. Perez
ULCM Parser/LexerWalker AbstractRepresentation CentralizedEngine Program Instances ULCMi: an ULCM implementation • Centralized interpreter of • ANTLR – compiler of compiler (JAVA) • Centralized workflow engine • 4 backends : simulation, JAVA, FRIM (C++/Fractal), CCM • CCM backend (distributed) • Generation of deployment files: • CAD, JuxMem, DIET and Meta • Rely on ADAGE • Initial configuration deployment • Dynamic component creation • Let to the issue of dynamic planning/reconfiguration COOP - ULCM & HLCM overview - C. Perez
High Level Component Model Hierarchy, Genericity, Template Meta-Programming & Connectors Julien Bigot & Co
HLCM: Motivations • Many different kinds of compositions • MxN • Shared data • Collective communications • Algorithmic skeletons • Master-workers, map-reduce, etc. • … • Two main approaches to implement them • Modify/Implement a runtime as in ULCMi • Complex / Low level • Breaks compatibility • Enable extension description in the model:the « library » approach • Component implementations: genericity • Component interactions: connectors COOP - ULCM & HLCM overview - C. Perez
Component Component Connectors • Originally defined in ADLs • Without connectors • Direct connection between ports • Limitation to 1-1 connection • With connectors • Connectors reify connections • A name • A set of roles • Any number of roles • Can be 1st class entities • Implemented by the user ports Component Component Connector roles COOP - ULCM & HLCM overview - C. Perez
Connector implementations • Intrinsically generic • Types of roles fulfillment parameters for the implementation • 1 connector multiple implementations • For distinct placement on hardware resources • Two possible kinds • Primitive connectors • Directly supported by the model • Composite connectors • An assembly Logged Use / Provide Logger<UT> U/P U/P provider interface = PT user interface = UT When PT subtype of UT and user.host = provider.host COOP - ULCM & HLCM overview - C. Perez
Example of More Complex Interactions as Connectors • Shared data between components • One single role • Multiple fulfillments • Parallel method calls • Provides the redistribution • An example • 2x2 Matrix multiplication • 2 roles for users (top/bottom) • 2 roles for providers (right/left) COOP - ULCM & HLCM overview - C. Perez
Components expose “open connections” Some roles fulfilled Some roles left “open” Interactions are defined by “merging” connections Union of the role fulfillments A single logical connection HLCM: a New Approach for Component Interface Definition Fulfilled role Role left “open” merge Results in COOP - ULCM & HLCM overview - C. Perez
Expressing Parallel Matrix Multiplication with HLCM reuse A B merge expose merge What implementation to use for this connection? Results in A1 B1 A2 B2 COOP - ULCM & HLCM overview - C. Perez
Connection Implementation:a Planning Choice Single host distribution Multiple hosts distribution COOP - ULCM & HLCM overview - C. Perez
Conclusion • ULCM • Hierarchy, Shared-data, collections, workflow • Possible optimizations embedded into ULCMi • Enable static & dynamic placement optimizations • HLCM • Hierarchy, Genericity, template meta-programming, connectors • Enable structure oriented optimizations • Like the choice of implementations of a particular connectors • Enable static placement optimizations • Workflow support to be added • May require just-in-time compilation COOP - ULCM & HLCM overview - C. Perez