Components for high performance grid programming in the GRID.IT project
description
Transcript of Components for high performance grid programming in the GRID.IT project
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
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
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 control)Data flow streams (nondeterministic 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
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 (POSIX Targets homogeneous WS clusters (POSIX TCP/IP)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!
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
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, Proactive, Inherits from existing ones (CCA, CCM, 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
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
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
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, …)
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
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)
Stan
dard
in
terf
ace
(use
s/pr
ovid
es, e
vent
s)
New
m
echanisms
(data flow
streams)
Existing code reuseParallel structure
Non functional interface(contracts, adaptivity)
Stan
dard
in
terf
ace
(use
s/pr
ovid
es,
even
ts)
New
m
echanisms
(data flow
streams)
Seq. comp.Par. comp.
legacy comp.
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
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
C3C5
MAM1 MAM2 MAM3 MAM4 MAM5
CAM0AM
C0
C1
C2 C4
C3C5
MAM1 MAM2 MAM3 MAM4 MAM5
CAM0
CAM01 CAM02
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 ASSIST Configuration control of single ASSIST parmodparmod
Exploits Exploits Performance model repositoryPerformance model repository Classical modelsClassical models HistoryHistory Compiler or programmer responsibilityCompiler or programmer responsibility
Adapts the parmod behaviour to satisfy Adapts the parmod behaviour to satisfy module performance contractmodule performance contract
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
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
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
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
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
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
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
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
Com
plet
ion
time
(sec
s)
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
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)
% in
crea
se in
com
plet
ion
time
Lithiummuskel
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
enta
ge o
f tas
ks p
er
wor
ksta
tion
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
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 ?
isti.cnr.it