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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

Advanced Component ModelsULCM & HLCMJulien Bigot, Hinde Bouziane, Christian PerezCOOP ProjectLyon, 9-10 mars 2010

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

Unified Lego Component ModelHierarchy, Shared Data, Master-Workers & WorkflowsHinde Bouziane & Co

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 3

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

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 4

ULCM: a primitive examplecomponent 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"; } }

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 5

ULCM: a composite examplecomponent 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

CB

A

aComposite

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 6

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

ULCM

Parser/LexerWalker

AbstractRepresentation

CentralizedEngine InstancesProgram

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

High Level Component ModelHierarchy, Genericity, Template Meta-Programming & ConnectorsJulien Bigot & Co

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 8

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

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 9

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

Connector

Component Component

Component Component

roles

ports

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 10

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

userinterface = UT

providerinterface = PT

When PT subtype of UT anduser.host = provider.host

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 11

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)

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 12

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

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 13

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?

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 14

Connection Implementation:a Planning Choice

Multiple hosts distribution

Single host distribution

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

2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 15

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