The Design of a CCA Framework with Distribution

4 downloads 0 Views 561KB Size Report
Research Group On Parallelism, Graphs, and Optimization. Mestrado e Doutorado em Ciência da Computação (MDCC). Universidade Federal do Ceará.
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

Suggest Documents