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
2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez3 ULCM in a nutshell Defined & implemented during ANR LEGO 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
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"; }
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
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
High Level Component Model Hierarchy, Genericity, Template Meta-Programming & Connectors Julien Bigot & Co
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
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
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
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)
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
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?
2010, March 9th-10thCOOP - ULCM & HLCM overview - C. Perez14 Connection Implementation: a Planning Choice Multiple hosts distribution Single host distribution
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