160 likes | 280 Views
Advanced Component Models ULCM & 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
E N D
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