The Design of a CCA Framework with Distribution, Parallelism, and Recursive Composition
Francisco Heron de Carvalho Junior Ricardo Cordeiro Correa Research Group On Parallelism, Graphs, and Optimization Mestrado e Doutorado em Ciência da Computação (MDCC) Universidade Federal do Ceará Fortaleza, Brazil
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works.
MDCC – Mestrado e Doutorado em Ciência da
2
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works;
MDCC – Mestrado e Doutorado em Ciência da
3
Component Models in HPC •
CCA (Common Component Architecture) – Frameworks may investigate forms of paralelizing components; – CCAffeine (parallel), XCAT (distributed), DCA (distributed/parallel), SciRun2 (M× N couplings); – SCMD, cohorts, MCMD, teams, PRMI ...
•
Fractal/GCM (Grid Component Model) – Distributed by design (grid computing); – Collective interfaces (multicast, gathercast, M:N) for paralellism; – M× N couplings – alternatives for implementation: • Composition of gathercast and multicast; • Controllers;
MDCC – Mestrado e Doutorado em Ciência da
4
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works.
MDCC – Mestrado e Doutorado em Ciência da
5
The Hash (#) Component Model • A (meta-)model of parallel components; • A #-component is formed ... by a set of units; • Each unit in a computing node of distributed platform; • Hiearchical composition by overlapping; • Concern-oriented parallel programming; – Concerns viewed as orthogonal to processes;
• Kinds of #-components – Diferent component/connection/deployment models; – # programming systems.
MDCC – Mestrado e Doutorado em Ciência da
6
The Hash (#) Component Model – Overlapping #-component
... unit inner component
...
slice of a unit
...
...
unit of an inner component
MDCC – Mestrado e Doutorado em Ciência da
7
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works.
MDCC – Mestrado e Doutorado em Ciência da
8
The Hash Programming Environment – HPE •
A general purpose # programming system for cluster computing;
•
Kinds: architectures, environment, data structures, computations, synchronizers, applications, qualifiers;
•
Hash Type System (HTS): – Abstract components (contracts ,or types, for #-components); – Supports context-based dynamic binding;
•
Architecture: – Front-End : life-cycle control; – Back-End : execution platforms; – Core : repository;
•
Hosted at Google code (http://hash-programming-enviroment.googlecode.com).
MDCC – Mestrado e Doutorado em Ciência da
9
The Hash Programming Environment – HPE
manager
I
G
worker 1 W worker 2
W
...
O
S
J R J R J R
worker n W
Farm [input type = I : Data, scatter strategy = S : Distribute[source = I, target = J], job type = J : Data, Component-Oriented work = W : Work[input = J, output = R], Skeletal Programming result type = R : Data gather strategy = G : Collect[source = R, target = O], output type = O : Data] CONTEXT MDCC – Mestrado e Doutorado em Ciência da
10
The Hash Programming Environment – HPE
MDCC – Mestrado e Doutorado em Ciência da
11
The Hash Programming Environment – HPE Farm [ input type = Data, output type = Data, job type = Data, result type = Data, scatter strategy = Distribute[source = Data, target = Data], work = Work[input = Data, output = Data], gather strategy = Collect[source = Data, target = Data]]
who it implements
who it needs
scatter input
work job
gather result
output
VeryGenericFarm MDCC – Mestrado e Doutorado em Ciência da
12
The Hash Programming Environment – HPE NumericalIntegrator[method = Romberg, function = MyFunction] who it implements
Farm [ input type = IntegralCase[MyFunction], output type = Double, job type = List[IntegralCase[MyFunction]], result type = List[Double], scatter strategy = DistributeInterval[source = IntegralCase[MyFunction], target = List[IntegralCase[MyFunction]]], work = Work[input = List[IntegralCase[MyFunction]], output = List[Double]], gather strategy = Collect[source = List[Double], who it needs target = Double] ]
MyRombergIntegrator MDCC – Mestrado e Doutorado em Ciência da
13
The Hash Programming Environment – HPE •
Parallel Numerical Integration - Castanhão
HPE x C#/MPI.NET
•
Multi-Dimensional Numerical Integration
Tempo (s)
200 150 100 50 0 1
using a Farm;
2
HPE
•
8
C#/MPI.NET
Sequencial
Linux-Based Cluster – http://castanhao.lia.ufc.br
Parallel Numerical Integration - Castanhão
– 28 nós (12 operational);
Binding time negligible; – Constant on number of processors and problem size;
10 Aceleração
•
4 Nós
1 1
2
4
8
0 Nós HPE
C#/MPI.NET
MDCC – Mestrado e Doutorado em Ciência da
Sequencial
14
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works.
MDCC – Mestrado e Doutorado em Ciência da
15
Why to Make HPE a CCA Framework • To give evidence about the expressiveness of the hash component model; • Communicate novel ideas; • To contribute to the design of CCA frameworks; – A general notion of parallel component (MCMD by design); – A more expressive way to integrate parallelism and distribution; – More control over performance of connections (always direct); – A new perspective of hierachical and recursive composition;
• To make case studies with existing CCA applications. MDCC – Mestrado e Doutorado em Ciência da
16
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works.
MDCC – Mestrado e Doutorado em Ciência da
17
How to Make HPE a CCA Framework – Ports implements provides
uses_1
uses_2
C ...
#-component C
uses_k
implements
inner components
inner components
provides
provides port
uses_1
C
...
uses_2 uses_k
provides port
uses ports
CCA look of #-component C
uses ports
MDCC – Mestrado e Doutorado em Ciência da
18
How to Make HPE a CCA Framework – Ports implements provides_1
provides_2
provides_n
C uses_1
uses_2
...
uses_k
#-component C implements
inner components
inner components
provides_1 provides_2 provides_n
provides ports
uses_1
...
C
...
uses_2 uses_k
provides port
uses ports
CCA look of #-component C
uses ports
MDCC – Mestrado e Doutorado em Ciência da
19
How to Make HPE a CCA Framework – Binding p_1
S
C
p_2
...
inner component
...
...
u_1
processing node #2
u_2
processing node #k
u_k
S
... u_k
p_1
... ...
...
p_k
direct binding
...
processing node #1
p_2
implements
#-component
... u_2
u_1
p_1
p_k
C
S
...
...
MDCC – Mestrado e Doutorado em Ciência da
p_2
message passing
p_k
20
How to Make HPE a CCA Framework – Binding
u_1 binding is an inner component of the client
c_1 s_1
client u_2 #-component
C
v_1
binding
...
c_2 s_2
B
v_2
...
...
c_m s_n ...
u_m
server #-component
v_n
binding is an inner component of the server
S
binding is of kind SYNCHRONIZER
client node #1 client node #2 client node #m
direct binding
... u_1 u_2 u_m
rendezvous indirect binding (MxN coupling)
...
...
...
...
...
...
C
...
s_1
c_1 c_2 c_m
message passing
s_2
B
s_n
...
direct binding
...
...
...
...
...
...
MDCC – Mestrado e Doutorado em Ciência da
S
...
v_1 v_2 v_n
21
server node #1 server node #2 server node #n
How to Make HPE a CCA Framework – Binding binding is of kind SERVICE
u_1
S
SAbs
C p_2
u_2
c_2
...
...
s_1
c_1
p_1
p_m
...
...
B
...
...
c_m
u_m
s_2
p_2
p_n
v_n SAbs
SAbs
indirect binding
client #-component
v_2
...
s_n
SAbs
v_1
p_1
server #-component
(a) involved #-components
client u_1 node #1 u_1 client u_2 node #2 clientu_2 node #m
u_m
...
... C
direct binding
... ...
...
c_1
... ...
c_2
B ... c_m
u_m
service indirect binding (MxN coupling)
v_1
...
v_2
... v_n
...
s_1
c_1 s_1 c_2 s_2
c_m
...
message passing
B
s_2 s_n
...
direct binding
...
...
...
...
...
...
S
...
server node #1 server node #2
v_1 v_2
server node #n
v_n
s_n
S (c) CCA perspective
SAbs
(b) run-time connections
MDCC – Mestrado e Doutorado em Ciência da
22
How to Make HPE a CCA Framework – Instance ... override void createSlices { ... DGAC.createSlice( ... p_i ... ); ... DGAC.createSlice( ... q_i ...); ... } (a) class of s_i ...
#-component p_1
p_2
...
p_k
q_1
S2
S1
p_2 p_k
...
...
CCA compliance
... ...
...
s_2
S1
...
s_k
...
C
s_k
s_1
... ...
s_2
...
C ...
... p_1
...
... s_1
...
q_k
inner component
inner component
...
q_2
S2
... ...
q_1 q_2 q_k
MDCC – Mestrado e Doutorado em Ciência da
... void setServices(Services s) { ... s.addProvidesPort( ... ); ... s.addProvidesPort( ... ) ... s.registerUsesPort( ... p_i ... ); ... s.registerUsesPort( ... q_i ...); ... } (b) class of s_i ...
23
How to Make HPE a CCA Framework CCA PARALLEL FRAMEWORK Unit-Level BuilderService's
resolution
Back-End Web Service
loading configurations
Component-Level BuilderService
DGAC
Parallel Component View
Manager
Worker #1 message passing channel
Worker #2
...
deployment
for communication between units of a CCA component
Worker #n Single Unit View DGAC database access interface
ComponentRepository
DDAO (DGAC Database Access Object)
MDCC – Mestrado e Doutorado em Ciência da
DGAC Database
24
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works.
MDCC – Mestrado e Doutorado em Ciência da
25
The features of the CCA framework HPE Generalized Distributed Parallel Components •
MCMD (Multiple Component Multiple Data);
•
A parallel component addresses a single concern; – (CCAffeine) A cohort of components is a single #-component;
•
Comunication is encapsulated in #-components; – No clandestine communication (synchronizer #-components encapsulating MPI); – Components are decoupled with respect to parallel interaction;
•
Expressiveness: – No restrictions for composition of parallel components; – Comparable to MPI. – Parallel programming with skeletons; – Connectors as #-components.
MDCC – Mestrado e Doutorado em Ciência da
26
The features of the CCA framework HPE M × N Couplings • Binding #-components, encapsulating “logic of transfers”; – Bindings can be tuned according to the architecture features; – This is not true for PRMI without imposing restrictions on distribution semantics and on the allowed data types; • The same for GCM collective interfaces;
• The client and the server may be decoupled ! – A server may attend distinct clients through distinct bindings; – A client may connect to distinct servers through distinct bindings;
• The client and the server may share a communicator. MDCC – Mestrado e Doutorado em Ciência da
27
The features of the CCA framework HPE Recursive Composition •
Dealing with complexity of large scale component ensembles; – A form to achieve abstraction and modularity;
•
Vertical (is-inner-of) and horizontal composition (indirect bindings):
•
Vertical composition is resolved automatically, like in original HPE; – Binding resolution based on abstract components and contexts;
•
Ports between applications are connected by the user; – Application #-components have the granularity of CCA components;
•
Correction: contradicting [21], CCA frameworks may support recursive composition through AbstractFramework interface; – But frameworks still do not provide tools for dealing with such feature;
MDCC – Mestrado e Doutorado em Ciência da
28
The features of the CCA framework HPE Non-Functional Concerns • One of the distinguishing features of GCM; • HPE supports kinds for some non-functional concerns; – Environments, Qualifiers, and Architectures;
• Controllers are not yet supported – “dynamic reconfiguration according to observed performance and failures”;
– In GCM, controllers are special components (not a regular one); – Thus, HPE can include a new kind of #-component ( Controllers); • BindingController, AttributeController, ContentController, etc ...
MDCC – Mestrado e Doutorado em Ciência da
29
The features of the CCA framework HPE Non-Functional Concerns controller ports
controller components
C1
C2
regular functional provides ports
...
S
...
...
regular functional uses ports
MDCC – Mestrado e Doutorado em Ciência da
30
Topics • Parallelism in component models for HPC; • The Hash Component Model; • HPE – Hash Programming Environment; • Why to make HPE a CCA framework ? • How to make HPE a CCA framework ? • What HPE brings to the world of CCA frameworks ? • Conclusion / Further Works;
MDCC – Mestrado e Doutorado em Ciência da
31
Conclusion / Further Works •
With HPE, our group expects to give contributions to CCA community (researchers and users), as well as to improve the communication of novel ideas;
•
We need to validate the HPE framework: – Test with applications; • looking for suggestions and collaborations;
– Investigate programming techniques; • Skeletons; • Design and programming of bindings;
– Working a web-based interface for BuilderService port; – Performance evaluation.
MDCC – Mestrado e Doutorado em Ciência da
32
The Design of a CCA Framework with Distribution, Parallelism, and Recursive Composition Francisco Heron de Carvalho Junior
[email protected]
Ricardo Cordeiro Corrêa Research Group On Parallelism, Graphs, and Optminization Mestrado e Doutorado em Ciência da Computação (MDCC) Universidade Federal do Ceará Fortaleza, Brazil
http://hash-programming-environment.googlecode.com