components for high performance grid programming in the grid.it project 1 workshop on component...

26
Components for high performan ce grid programming in the GR ID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004 Components for high Components for high performance grid performance grid programming programming in the in the GRID.IT GRID.IT project project M. Aldinucci M. Coppola D. Laforenza D. Puppin ISTI CNR Pisa S. Campa M. Danelutto L. Scarponi M. Vanneschi C. Zoccolo Dept. Computer Science University of Pisa

Post on 19-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

1Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Components for high Components for high performance grid performance grid

programming programming in the in the GRID.ITGRID.IT project projectM. AldinucciM. Coppola

D. LaforenzaD. Puppin

ISTICNR Pisa

S. CampaM. DaneluttoL. Scarponi

M. VanneschiC. Zoccolo

Dept. Computer ScienceUniversity of Pisa

Page 2: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

2Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

TheThe goal goal

Programming environment Programming environment supporting the development of supporting the development of EfficientEfficient ScalableScalable Fault tolerantFault tolerant AdaptiveAdaptive

grid aware applicationsgrid aware applications

Page 3: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

3Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Starting from: ASSISTStarting from: ASSIST Structured parallel programming Structured parallel programming

environmentenvironment Sequential (C, C++, F77) or parallel Sequential (C, C++, F77) or parallel

modulesmodules Data flow streams (nondeterministic Data flow streams (nondeterministic

control)control) Generic graph compositionsGeneric graph compositions Parallel module:Parallel module: parmodparmod

User defined: input/output section, virtual User defined: input/output section, virtual processorsprocessors

Specialized to implement most classical and non Specialized to implement most classical and non classical parallelism exploitation patternsclassical parallelism exploitation patterns

Page 4: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

4Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

The ASSIST track …The ASSIST track …

ASSIST 1.0ASSIST 1.0 Targets homogeneous WS clusters Targets homogeneous WS clusters

(POSIX TCP/IP)(POSIX TCP/IP) ASSIST 1.2ASSIST 1.2

Heterogeneous clusters (Linux Pentium / Heterogeneous clusters (Linux Pentium / MacOSX PPC) and GRID (Globus 2.4)MacOSX PPC) and GRID (Globus 2.4)

ASSIST 2.0 (under development)ASSIST 2.0 (under development) GRID, adaptivity, componentsGRID, adaptivity, components … … and most of this talk!and most of this talk!

Page 5: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

5Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

The approach: layered The approach: layered architecturearchitecture

ApplicationsApplications Complex, multidisciplinary, parallelComplex, multidisciplinary, parallel High level programming toolsHigh level programming tools

High performance High performance programming environmentprogramming environment Structured, compositional, adaptiveStructured, compositional, adaptive Performance contractsPerformance contracts

Grid abstract machineGrid abstract machine Functionalities from resource, collective and Functionalities from resource, collective and

connectivityconnectivity Middleware independent APIMiddleware independent API

GRID middleware

Abstract machine

Programming environment

Applications

Page 6: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

6Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Programming modelProgramming model Component basedComponent based

Inherits from existing ones (CCA, CCM, Inherits from existing ones (CCA, CCM, Proactive, …)Proactive, …)

High performanceHigh performance Builds on efficient mechanismsBuilds on efficient mechanisms

ParallelParallel High level programming mechanisms and toolsHigh level programming mechanisms and tools

InteroperabilityInteroperability Standard component frameworksStandard component frameworks

Code reuseCode reuse Sequential code in componentsSequential code in components

Page 7: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

7Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Computational model: Computational model: parallelismparallelism

StructuredStructured parallelism exploitation parallelism exploitation

Programmers Programmers quality of parallelism + contractsquality of parallelism + contracts

Environment (compiler + run time) Environment (compiler + run time) mechanisms, quantity, heuristicsmechanisms, quantity, heuristics

Page 8: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

8Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Computational model: Computational model: interactioninteraction

Compositionality of componentsCompositionality of components Classic mechanisms:Classic mechanisms:

RPC/RMI RPC/RMI Events Events

New mechanisms:New mechanisms: Data flow streamsData flow streams

Non deterministic controlNon deterministic control Component reacts to incoming data Component reacts to incoming data

Page 9: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

9Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Computational model: Computational model: adaptivityadaptivity

Performance contractsPerformance contracts Specified by the programmerSpecified by the programmer Performance requirements (bandwidth, Performance requirements (bandwidth,

parallelism degree, …)parallelism degree, …) Restructuring strategiesRestructuring strategies

Specified by userSpecified by user Program rewriting (different parallel Program rewriting (different parallel

patterns, parallelism degree, …)patterns, parallelism degree, …)

Page 10: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

10Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Comp. Model: adaptivity Comp. Model: adaptivity (2)(2)

Allocation constrainsAllocation constrains Mapping computations to nodesMapping computations to nodes Data access constrainsData access constrains

Adaptivity in the environment:Adaptivity in the environment: Monitoring of activities Monitoring of activities Triggering of Triggering of correctivecorrective actions actions Notifying the userNotifying the user

Page 11: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

11Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Component modelComponent model

Existing code reuseParallel structure

Non functional interface(contracts, adaptivity)

Sta

nd

ard

in

terf

ace

(use

s/p

rovi

des

, eve

nts

)

New

m

ech

an

isms

(data

flow

stre

am

s)Existing code reuseParallel structure

Non functional interface(contracts, adaptivity)

Sta

nd

ard

in

terf

ace

(use

s/p

rovi

des,

eve

nts

)

New

m

ech

an

isms

(data

flow

stre

am

s)Seq. comp.

Par. comp.

legacy comp.

Page 12: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

12Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Application managerApplication manager

Grid Abstract Machine (GAM)

•High performance components•ASSIST programs

Standard middleware

ASSIST components

GAM

Application manager (AM)

Abstraction of basic services

Standard middleware

Page 13: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

13Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Application manager (2)Application manager (2)

AM

C0

C1

C2 C4

C3

C5

MAM1 MAM2 MAM3 MAM4 MAM5

CAM0AM

C0

C1

C2 C4

C3

C5

MAM1 MAM2 MAM3 MAM4 MAM5

CAM0

CAM01 CAM02

Page 14: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

14Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Module Application Module Application ManagerManager

Configuration control of single Configuration control of single ASSIST parmodASSIST parmod

Exploits Exploits Performance model Performance model repositoryrepository Classical modelsClassical models HistoryHistory Compiler or programmer responsibilityCompiler or programmer responsibility

Adapts the parmod behaviour to Adapts the parmod behaviour to satisfy module performance contractsatisfy module performance contract

Page 15: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

15Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Performance Model Performance Model RepositoryRepository

Classical modelsClassical models Parallelism degree = Compute time / Parallelism degree = Compute time /

Communication timeCommunication time

Dynamic modelsDynamic models Increase parallelism degree step-by-step Increase parallelism degree step-by-step

until results start coming backuntil results start coming back

User providedUser provided Proper formalismProper formalism

Page 16: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

16Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Component Application Component Application ManagerManager

Global control strategiesGlobal control strategies Inputs from MAMsInputs from MAMs Possibily overcomes MAMs Possibily overcomes MAMs

proposalsproposals E.g. 2 stage pipelineE.g. 2 stage pipeline

First stage achieves performance contract First stage achieves performance contract ++ (++ (very good very good resource recruited)resource recruited)

CAM requires new contract to the second CAM requires new contract to the second stagestage

Page 17: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

17Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Reconfiguration Reconfiguration strategiesstrategies

C1 virtualizes grid data C1 virtualizes grid data resource in two streamsresource in two streams

C2 is sequential by defaultC2 is sequential by default strategy tells strategy tells farm farm

C3 data parallelC3 data parallelstrategy tells parallelism degreestrategy tells parallelism degree

C4 is sequential by default C4 is sequential by default strategy tells if(Condstrategy tells if(Condxx) data parallel else farm) data parallel else farm

C5 non det mapping of streams to data setC5 non det mapping of streams to data set

C2 bottleneck!C2 bottleneck! C2 new farm with proper parallelism C2 new farm with proper parallelism

degreedegree C4 C5 restructured as a consequenceC4 C5 restructured as a consequence

Page 18: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

18Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Experiments (1)Experiments (1)ASSIST

Page 19: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

19Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Experiments (2)Experiments (2)ASSIST

Page 20: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

20Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Experiments (3)Experiments (3)ASSIST

Page 21: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

21Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Experiments (4)Experiments (4)ASSIST

Page 22: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

22Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Experiments (5)Experiments (5)

0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

160.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Number of GRID nodes used

Co

mp

leti

on

tim

e (s

ecs)

0.82

0.84

0.86

0.88

0.90

0.92

0.94

0.96

0.98

1.00

1.02

Efficiency

Completion time Efficiency

Lithiummuskel

Page 23: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

23Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Experiments (6)Experiments (6)

0.00

1.00

2.00

3.00

4.00

5.00

6.00

7.00

8.00

9.00

10.00

Run 1 (2 faults) Run 2 (2 faults) Run 3 (2 faults) Run 4 (1 fault) Run 5 (1 fault) Run 6 (1 fault)

% i

ncr

ease

in

co

mp

leti

on

tim

e

Lithiummuskel

Page 24: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

24Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Experiments (7)Experiments (7)Lithiummuskel

0.002.004.006.008.00

10.0012.0014.0016.0018.00

0.79 0.33 2.28 2.28 1.00 0.64 1.00 2.59

WS1 WS2 WS3 WS4 WS5 WS6 WS7 WS8

Workstation name / relative power

Perc

en

tag

e o

f ta

sks p

er

wo

rksta

tio

n

Page 25: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

25Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

ConclusionsConclusions

On going workOn going work In the framework of GRID.it projectIn the framework of GRID.it project

Involving major research institutions (grid, Involving major research institutions (grid, high performance, parallelism) in Italyhigh performance, parallelism) in Italy

Main contribution Main contribution Non functional interfaces + application Non functional interfaces + application

managersmanagers Currently being Currently being

experimented/implemented on/in ASSISTexperimented/implemented on/in ASSIST

Page 26: Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june

Components for high performance grid programming in the GRID.it project

26Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june 2004

Any questions ?

[email protected]

isti.cnr.it