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