Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Component Models ULCM & HLCM Julien Bigot, Hinde Bouziane, Christian Perez COOP Project Lyon, 9-10 mars 2010.

Similar presentations


Presentation on theme: "Advanced Component Models ULCM & HLCM Julien Bigot, Hinde Bouziane, Christian Perez COOP Project Lyon, 9-10 mars 2010."— Presentation transcript:

1 Advanced Component Models ULCM & HLCM Julien Bigot, Hinde Bouziane, Christian Perez COOP Project Lyon, 9-10 mars 2010

2 Unified Lego Component Model Hierarchy, Shared Data, Master- Workers & Workflows Hinde Bouziane & Co

3 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez3 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

4 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez4 ULCM: a primitive example component HelloWorld { ports { attribute name=an_attribute type="a_type"; server name=a_server_port type="interface1"; client name=a_client_port type="interface2"; inputs name=an_in_port type="a_data_type1"; outputs name=an_out_port type="a_data_type2"; } content { primitive class="ulcm.tests.HelloWorld“ csd="WE.csd" implref="HW_omni_exe_id"; }

5 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez5 ULCM: a composite example component aComposite { ports {... } decl { Component1 a; Component2 c; Component6 c1; c.p1 – c1.p2; set a.b 4;... } service run { seq { Component4 a1; set a1.p -- a.q; exec a; parallel { section: exec b; section: exec c; } exec d; } C1 A1 start end D C B A aComposite

6 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez6 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 ULCMULCM ULCMULCM Parser/Lexer Walker Abstract Representation Centralized Engine InstancesProgram

7 High Level Component Model Hierarchy, Genericity, Template Meta-Programming & Connectors Julien Bigot & Co

8 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez8 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

9 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez9 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 1 st class entities  Implemented by the user Connector Component roles ports

10 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez10 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 U/P user interface = UT provider interface = PT When PT subtype of UT and user.host = provider.host

11 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez11 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)

12 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez12 HLCM: a New Approach for Component Interface Definition  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 Fulfilled role Role left “open”  merge Results in

13 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez13 Expressing Parallel Matrix Multiplication with HLCM merge expose A  merge B reuse A2 A1 B1 B2 Results in What implementation to use for this connection?

14 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez14 Connection Implementation: a Planning Choice Multiple hosts distribution Single host distribution

15 2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez15 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


Download ppt "Advanced Component Models ULCM & HLCM Julien Bigot, Hinde Bouziane, Christian Perez COOP Project Lyon, 9-10 mars 2010."

Similar presentations


Ads by Google