Components for high performance grid programming in the project

advertisement
Components for high performance
grid programming
in the GRID.IT project
M. Aldinucci
M. Coppola
D. Laforenza
D. Puppin
ISTI
CNR Pisa
Components for high performance grid
programming in the GRID.it project
S. Campa
M. Danelutto
L. Scarponi
M. Vanneschi
C. Zoccolo
Dept. Computer Science
University of Pisa
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
1
The goal

Programming environment supporting the
development of
Efficient
 Scalable
 Fault tolerant
 Adaptive


grid aware applications
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
2
Starting from: ASSIST





Structured parallel programming environment
Sequential (C, C++, F77) or parallel modules
Data flow streams (nondeterministic control)
Generic graph compositions
Parallel module: parmod
User defined: input/output section, virtual
processors
 Specialized to implement most classical and non
classical parallelism exploitation patterns

Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
3
The ASSIST track …

ASSIST 1.0


ASSIST 1.2


Targets homogeneous WS clusters (POSIX TCP/IP)
Heterogeneous clusters (Linux Pentium / MacOSX
PPC) and GRID (Globus 2.4)
ASSIST 2.0 (under development)
GRID, adaptivity, components
 … and most of this talk!

Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
4
The approach: layered architecture

Applications



High performance
programming environment



Complex, multidisciplinary, parallel
High level programming tools
Structured, compositional, adaptive
Performance contracts
Grid abstract machine


Applications
Programming environment
Abstract machine
GRID middleware
Functionalities from resource, collective and connectivity
Middleware independent API
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
5
Programming model

Component based


High performance


High level programming mechanisms and tools
Interoperability


Builds on efficient mechanisms
Parallel


Inherits from existing ones (CCA, CCM, Proactive, …)
Standard component frameworks
Code reuse

Sequential code in components
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
6
Computational model: parallelism



Structured parallelism exploitation
Programmers 
quality of parallelism + contracts
Environment (compiler + run time) 
mechanisms, quantity, heuristics
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
7
Computational model: interaction


Compositionality of components
Classic mechanisms:
RPC/RMI
 Events


New mechanisms:

Data flow streams
Non deterministic control
 Component reacts to incoming data

Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
8
Computational model: adaptivity

Performance contracts
Specified by the programmer
 Performance requirements (bandwidth, parallelism
degree, …)


Restructuring strategies
Specified by user
 Program rewriting (different parallel patterns,
parallelism degree, …)

Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
9
Comp. Model: adaptivity (2)

Allocation constrains
Mapping computations to nodes
 Data access constrains


Adaptivity in the environment:
Monitoring of activities
 Triggering of corrective actions
 Notifying the user

Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
10
Component model
Non functional interface
(contracts, adaptivity)
Existing code reuse
Parallel structure
New mechanisms
(data flow streams)
Standard interface
(uses/provides,
events)
Existing code reuse
Parallel structure
New mechanisms
(data flow streams)
Standard interface
(uses/provides, events)
Non functional interface
(contracts, adaptivity)
legacy comp.
Seq. comp.
Par. comp.
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
11
Application manager
•High performance components
•ASSIST programs
ASSIST components
Application manager (AM)
Grid Abstract Machine (GAM)
Abstraction of basic services
Standard middleware
Components for high performance grid
programming in the GRID.it project
GAM
Standard middleware
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
12
Application manager (2)
C2
C2
C4
C4
C1
C1
C5
C5
C3
C3
C0
C0
MAM1
MAM1
MAM2
MAM2
MAM3
MAM3
CAM01
AM
Components for high performance grid
programming in the GRID.it project
MAM4
MAM4
MAM5
MAM5
CAM02
CAM00
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
13
Module Application Manager


Configuration control of single ASSIST parmod
Exploits Performance model repository
Classical models
 History
 Compiler or programmer responsibility


Adapts the parmod behaviour to satisfy module
performance contract
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
14
Performance Model Repository

Classical models


Dynamic models


Parallelism degree = Compute time / Communication time
Increase parallelism degree step-by-step until results start
coming back
User provided

Proper formalism
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
15
Component Application Manager



Global control strategies
Inputs from MAMs
Possibily overcomes MAMs proposals

E.g. 2 stage pipeline
First stage achieves performance contract ++ (very good
resource recruited)
 CAM requires new contract to the second stage

Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
16
Reconfiguration strategies

C1 virtualizes grid data
resource in two streams
C2 is sequential by default
strategy tells  farm
C3 data parallel
strategy tells parallelism degree
C4 is sequential by default
strategy tells if(Condx) data parallel else farm
C5 non det mapping of streams to data set

C2 bottleneck!




C2 new farm with proper parallelism degree
 C4 C5 restructured as a consequence

Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
17
Experiments (1)
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
18
Experiments (2)
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
19
Experiments (3)
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
20
Experiments (4)
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
21
Experiments (5)
Efficiency
160.0
1.02
1.00
140.0
Completion time (secs)
0.98
120.0
0.96
100.0
0.94
80.0
0.92
0.90
60.0
0.88
40.0
0.86
20.0
0.84
0.0
0.82
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
Completion time
Components for high performance grid
programming in the GRID.it project
Efficiency
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
22
Experiments (6)
10.00
% increase in completion time
9.00
8.00
7.00
6.00
5.00
4.00
3.00
2.00
1.00
0.00
Run 1 (2 faults) Run 2 (2 faults) Run 3 (2 faults)
Components for high performance grid
programming in the GRID.it project
Run 4 (1 fault)
Run 5 (1 fault)
Run 6 (1 fault)
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
23
Percentage of tasks per
workstation
Experiments (7)
18.00
16.00
14.00
12.00
10.00
8.00
6.00
4.00
2.00
0.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
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
24
Conclusions


On going work
In the framework of GRID.it project


Main contribution


Involving major research institutions (grid, high
performance, parallelism) in Italy
Non functional interfaces + application managers
Currently being experimented/implemented
on/in ASSIST
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
25
Any questions ?
di.unipi.it
First.Family@
isti.cnr.it
Components for high performance grid
programming in the GRID.it project
Workshop on Component Models and Systems for Grid
Applications - St.Malo 26 june 2004
26
Download