Upload
delphia-miller
View
217
Download
0
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
Advanced Component ModelsULCM & HLCMJulien Bigot, Hinde Bouziane, Christian PerezCOOP ProjectLyon, 9-10 mars 2010
Unified Lego Component ModelHierarchy, Shared Data, Master-Workers & WorkflowsHinde Bouziane & Co
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
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"; } }
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
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
High Level Component ModelHierarchy, Genericity, Template Meta-Programming & ConnectorsJulien Bigot & Co
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
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
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
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)
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
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?
2010, March 9th-10th COOP - ULCM & HLCM overview - C. Perez 14
Connection Implementation:a Planning Choice
Multiple hosts distribution
Single host distribution
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