assist high-performance programming environment : application experiences and grid evolution

63
High-performance High-performance Programming Programming Environment : Environment : Application Application Experiences Experiences and Grid and Grid Evolution Evolution Marco Vanneschi Marco Vanneschi Department of Computer Science, University of Pisa EuroPVM/MPI 2003, Venice

Upload: wardah

Post on 16-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

ASSIST High-performance Programming Environment : Application Experiences and Grid Evolution. Marco Vanneschi Department of Computer Science, University of Pisa. EuroPVM/MPI 2003, Venice. Department of Computer Science, University of Pisa - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST ASSIST High-performance High-performance

Programming Programming Environment : Environment :

Application Application Experiences Experiences

and Grid Evolutionand Grid Evolution

Marco VanneschiMarco VanneschiDepartment of Computer Science, University of

Pisa

EuroPVM/MPI 2003, Venice

Page 2: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 2

ASSIST (A Software development System based on Integrated Skeleton Technology)

Projects:

• ASI-PQE2000

• CNR Agenzia 2000

• MIUR-CNR Strategic Programme L449/97, 1999 and 2000

• MIUR-FIRB Grid.it

Implementations:

• Cluster/Beowulf (on top of ACE)

• First Grid version – AssistConf (on top of Globus)

• On-going: High-performance Component ASSIST

Department of Computer Science, University of PisaDepartment of Computer Science, University of Pisa

ASSISTASSISTA Programming Environment for High-performance Portable A Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms and GridsApplications on Clusters, Large-scale Platforms and Grids

Department of Computer Science, University of PisaDepartment of Computer Science, University of Pisa

ASSISTASSISTA Programming Environment for High-performance Portable A Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms and GridsApplications on Clusters, Large-scale Platforms and Grids

[Parallel Computing, Dec. 2002] http://www.di.unipi.it/research/TR

Page 3: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 3

ASSIST as a research vehicle

From “classical” skeletons to ASSIST

Significant improvements for cluster architectures

Feasible and successful approach for applications: • Computational Chemistry, and other scientific codes,• Image & Signal Processing, • Earth Observation Systems, • Video Compression, • Knowledge Discovery and Data Mining, User Profiling, • Search Processing on Structured / Unstructured Data, • Query Language Interpreters, …

Can it be a feasible approach

for Large-scale and

Grid platforms

too ?

Page 4: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 4

Outline

1. Structured Parallel Programming:

ASSIST as an improvement wrt

“classical” skeletons

2. Flexible implementation model

3. Towards Grid programming

Page 5: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 5

Part 1

Structured Parallel Programming

ASSIST as an improvement wrt “classical” skeletons

Page 6: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 6

Structured Parallel Programming

Parallelprogram

pipeline

farm

forall

scan

Pipeline main farm stage1 farm stage2End pipe

Page 7: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 7

Structured Parallel Programming

High-level constructs for task parallelism (e.g. PIPELINE, FARM), data parallelism (e.g. MAP, SCAN, STENCILS), mixed task+data parallelism (D&C, PARMOD), and their compositions (GENERIC or STRUCTURED GRAPHS)

Semantic model and associated performance model• constraints on the parallel paradigm adopted to

compose (sequential / parallel) modules into complex applications

Many potentialities for intensive optimizations and

restructuring of applications

Page 8: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 8

Approaches to Structured Parallel Programming:• Parallel Skeletons model• Parallel Design Patterns• …

Overcoming the difficulties of traditional data parallel languages (HPF) and their evolutions

Our past experience (Univ. Pisa): skeletons-based coordination languages

• P3L (1991), C-based, fixed skeleton set: pipe, map …• SkIE (1997), C/C++/F77/Java• Lithium (2001), Java-based, macro data-flow, pipe, farm, map, D&C• Several variants of them

Structured Parallel Programming

Page 9: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 9

Structured parallel programming and performance models

Example: Farm / Master-Slave / Parameter Sweeping / …

Emitter : Task

Scheduling

Collector of Task Results

Input Stream

Output Stream

W1

Wn

.

.

Set of functionally identical Workers

Optimal number of workers and other performance parameters (e.g. throughput, efficiency) can be expressed as functions of processing times, communication times, and utilization factors

Efficient and parametric implementation templates

for platform- and application-dependent optimizations

Load-balanced execution of Tasks belonging to a Stream

Page 10: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 10

Several pros: easy programmability, rapid prototyping, sequential software reuse, efficiency

• mainly for regular applications and/or regular compositions

Cons: for complex compositions, and for some irregular and dynamic applications

• Lack of expressiveness / inefficiency• Lack of flexibility

• Any modification led to extensive changes within compiler & run-time support

Optimizations: • not so intensive at compile time as it was expected,• very significant at the run-time support level,

• also for dynamic approaches to the run-time design

Skeletons: our past experience

Page 11: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 11

ASSIST: general program structures

Classical skeletons: often, fixed-patterns program structures are too simple for complex applications

ASSIST: parallel programs represented as generic graphs• whose nodes are structured • and can share objects

Page 12: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 12

Simple composition of fixed-patterns (stream parallel: pipeline, farm skeletons)

Example: a simple Ray Tracer

stage 1 stage 3...

Stream of input scenes

Stream of output scenes

stage 2(farm)

renderingalgorithm

Streams of scenes

Parallelism among scenes

Page 13: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 13

Composition of stream + data parallelism

Example: a more powerful Ray Tracer

stage 2(farm + map)

renderingalgorithm

stage 1 stage 3...Stream

of input scenes

Stream of

output scenes

Parallelism among scenes and inside every single scene

Page 14: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 14

Sequential modules written in several

host languages(C, C++, Fortran, Java)

Arbitrary Composition generic graphs stream-oriented both data-flow and nondeterministic with internal state

Not only fixed-pattern Parallel Skeletons ...

ASSIST Coordination Language (ASSIST-CL )

Page 15: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 15

External Objects

ASSIST graphs and Shared Objects

M3

Parallel (or sequential) module

Input

streams

Output stream

M5

s34M4

s25

s45 s54

M1 s13

M2s23

• Global variables

• Shared memory

• Files and I/O

• Libraries

• CORBA, DCOM, …

• ASSIST modules

• . . .

Composition by

• Typed streams

• External objects

Page 16: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 16

Generic graphs: data-flow + nondetermisms

Stream-based, possibly cyclic graph of components : data-flow and/or nondeterministic behaviour

Acyclic precedence

graph (DAG) of components

with data-flow behaviour

Stream-based computations are more general and possess interesting features of complex applications (e.g. data management, servers)

Nondeterminism + state is a powerful feature wrt purely functional (e.g. data-flow) behaviour

Page 17: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 17

Parallel Module (parmod): a paradigm for structured parallelism

Instead of specific skeletons:

a GENERIC SKELETON• i.e. a structure that can be effectively specialized at every utilization

The parmod construct includes the classical (stream-parallel and data-parallel) skeletons as special cases …,

… but it aims to achieve much more expressive power.

In addition, parmod expresses parallel computations with state, nondeterminism, and access to external shared objects.

Page 18: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 18

The parmod construct

VP

VP VP

VP VP

VP

VP VP

i n p u t s e c t i o n

Shared state

o u t p u t s e c t

Multiple input and output typed data streams

Set of Virtual Processors (VP) executing user code

VPs have assigned topology for naming (one, none, arrays)

Page 19: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 19

The parmod construct

VP

VP VP

VP VP

VP

VP VP

i n p u t s e c t i o n

Shared state

o u t p u t s e c t

independent distribution and collection strategies(e.g. broadcast, multicast, scatter, on-demand)

input and output sections can also host arbitrary user code

Page 20: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 20

The parmod construct

VP

VP VP

VP VP

VP

VP VP

i n p u t s e c t i o n

Shared state

o u t p u t s e c t

VPs host several user functions, activation can be data-driven(CSP-like nondeterministic execution, guarded channels)

VPs share data structures (run-time provides consistency)

Partitioning rules, replication

Page 21: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 21

Efficient run-time support of parmod

One of the main advantages of structured parallel programming is the opportunity for efficient run-time implementation of “specific” skeletons.

ASSIST has proved that this is true for “generic” skeletons too: parmod performance is • comparable to that of the same programs written in MPI,

• comparable to, or better than, that of the same programs expressed by “specific” skeletons

• More difficult implementation

Page 22: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 22

Parallel Partitioned Apriori (Data Mining)

Mainly stream-parallel Computation intensive,

well balanced dataset > 160 Mb regular I/O pattern

8 x Pentium 4, Gbit Eth

Apriori speed-up

0,00

1,00

2,00

3,00

4,00

5,00

6,00

7,00

8,00

9,00

1 2 3 4 5 6 7 8

N. of Processors

Ideal Measured

Performance Benchmarks of parmod (efficient as MPI or classical skeletons)

Page 23: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 23

Apriori algorithm (data mining) as a pipeline of parmod-farms (“none” topology)

stage 1 stage 4...

stage 3

.

.

.

stage 2 stage 5

stage 6

1.      Database reading, generation of stream of partitions

2.      Apriori algorithm in parallel (load balanced farm)

3.      Combination of partial results: collapsing hash-tree data structures

4.      Database scan, generation of a new stream of partitions of appropriate size

5.      Computation of "support" of the candidate solution (farm with broadcast)

Page 24: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 24

Performance Benchmarks of parmod (efficient as MPI, better than classical skeletons)

Data-Parallel BenchmarkVariable Stencil – single

parmod 2-D matrix 400x400 partitioned row-wise communication stencil

varies at each stepfor h …

forall i, j …

8 x Pentium 4, Gbit Eth

Data parallel speed-up

0,00

1,00

2,00

3,00

4,00

5,00

6,00

7,00

8,00

9,00

0 2 4 6 8 10

N. of Processors

Ideal Measured

Page 25: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 25

An irregular-dynamic benchmark(much better than classical skeletons)

N-body, Burnes-Hut Parmod implementing

a “specialized farm”, with shared memory objects

Plummer Model, very irregular data-set

8 x Pentium 4, Gbit Eth

N-body speed-up, size 1000K

0,00

1,00

2,00

3,00

4,00

5,00

6,00

7,00

8,00

9,00

0 2 4 6 8 10

N. of Processors

Ideal Measured

Page 26: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 26

Complex parallel programs in ASSIST

Complex applications, frameworks and/or critical cases for compositions

Intimate mix of task + data parallelism :• Systolic computations (single parmod, task + data parallelism)• Classification, clustering algorithms (graph of parmods)• User profiling by data mining (graph of parmods)• Language interpreters – Knowledge discovery in semi-structured

datasets (graph of parmods)

Parallel external objects• Data repositories• Web caching• Interfaces for legacy SW

Page 27: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 27

Example: data-mining C4.5 as a parallel D&C

TClient

Test

Divide

Conquer

training set TS, decision tree

P1

PN

For load balancing :

during some phases: Divide works in a data-parallel manner,

in other phases: in a farm-like manner,

in other phases …

Shared Tree objects exploited efficiently

Page 28: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 28

Interface CRM -DB -> DR

CRM-DB (Oracle)

Selection Classif

Assoc

Knowledge Repository.

(XML)

Interface Layout Generator

Control and tuning

Interface DR -> CRM-DB

Feedback

A user-profiling framework

Visualize

Clust

SAIB project: MIUR L46

SEMA Schlumberger, Univ.Pisa, Poly.Turin

Data Repository (parallel file system)

Page 29: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 29

External objects: a necessary feature for flexibility

Interactive applications Objects reuse with primitive APIs Devices, files, Parallel File System Data repositories Shared memory objects ASSIST programs themselves

Composition by streams only is not sufficient Towards Component ASSIST

External Objects

M3

M5

M4

M1

M2

Page 30: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 30

Example: data-mining C4.5 as a parallel D&C

TClient

Test

Divide

Conquer

training set TS, decision tree

P1

PN

Shared Tree objects exploited efficiently

Page 31: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 31

Structure of the ASSIST program

Integration with CORBA Code

compute(ParMod)compute(ParMod)

sequential code loop control

initialdata

simulation results

CORBA interface

Client side

Server side

Grafical interface

N-body simulation

GUI CORBA server

parallel client

Page 32: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 32

Part 2

ASSIST

Flexible Implementation Model

Page 33: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST implementation [EuroPar2003, ParCo2003]

Run-time support for cluster architectures: on top of ACE library and distributed shared memory (DVSA)

Page 34: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 34

Assistprogram

parco.ast

Design patterns based

Parsertypecheck

Modulebuilder

Codebuilder

Configurationbuilder

façade

front-endfactory

configfactory

codefactory

modulefactory

XMLconf

XMLconf

C++,Makefile

C++,Makefile

ASSISTcompiler

> astcc parco.ast

Page 35: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 35

Experimenting with extensions

1. Targeting heterogeneous COWs

2. Integrating parallel MPI libraries

3. AssistConf and ASSIST-G: first ASSIST Grid version on top of Globus

Page 36: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

Targeting heterogeneous COWs

Page 37: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 37

Assistprogram

parco.ast

Just enrich the code factory

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

C++C++

XMLconf

XMLconf Makefile

OsX

MakefileOsX

MakefileWin

MakefileWin

Codebuilder2

Page 38: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

Add parallel MPI libraries

Page 39: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 39

Assistprogram

parco.ast

Just enrich the module factory

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

C++C++

XMLconf

XMLconf

MPIbuilder

Page 40: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 40

MPI integration [EuroMicro 2003]

VP

VP

VP

VP

VP

VP

VP

VP

VPMPI wrapper

0 VP

VP

VP

VP

VP

VP

VP

VP

VP3

1

2

n

03

…12n

03

…1

2n

parmod parmodparmod_MPI

Page 41: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 41

Assistprogram

parco.ast

AssistConf and ASSIST-G: a first Grid implementation on top of Globus [EuroMicro 2003]

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

C++C++

XMLconf

XMLconf

Page 42: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 42

XML configuration file

modules list (parallel activities) modules graph pathnames, lib-names, code-names lib-modules bindings

machine names modules parallel degrees modules-machines mapping

static

dynamic

Page 43: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 43

Assistprogram

parco.ast

Just enrich the config factory

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

C++C++

XMLconf

XMLconf

GRIDconf

Page 44: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 44

ASSISTconf

Page 45: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 45

ASSIST-G

XMLconf(static)

XMLconf(static) ASSISTconf

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

Parsertypecheck

Modulebuilder

Codebuilder

Config.builder

façade

front-endfactory

configfactory

codefactory

modulefactory

ASSISTcompiler

ASSIST compiler

resourcesrequirements

brokerbroker

CLAMCLAM

MDS

GRIS/GIIS

MDS

GRIS/GIISGRAM

DUROC

GRAM

DUROC

gather & reservation resourceslib staging

allocation

XMLconfstatic

dynamic

XMLconfstatic

dynamic

Page 46: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 46

Part 3

ASSIST

Towards Grid programming

Page 47: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 47

MIUR – FIRB and CNR• CNR, INFN, ASI, CNIT, Universities

Basic Research Programme - ICT• + infrastructure and demonstrators (25%)

Timeframe: November 2002 – October 2005

Total Cost: 11 Mۥ other synergies by MIUR-CNR Projects on Complex

Enabling Platforms: 2,5 M€

Grid.it Project Enabling Platforms for High-performance Computational Grids Oriented to Scalable Virtual Organizations

Page 48: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 48

Programming Environment

High-level servicesHigh-level servicesKnowledge services, Data bases, Scientific libraries, Image processing, …Knowledge services, Data bases, Scientific libraries, Image processing, …

Domain-specific Problem Solving Environments (PSEs)

High-performance, Grid-aware component-based High-performance, Grid-aware component-based programming model and toolsprogramming model and tools

Resource management, Performance tools, Security, VO, …Resource management, Performance tools, Security, VO, …

Next Generation MiddlewareNext Generation Middleware

Basic infrastructure - standards (OGSA-compliant)

Software technology of Grid.it

Page 49: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 49

Dealing with heterogeneity

New compilers, run-time

supports, resource

management

Secure and fault tolerant

implementations

Dynamic, adaptive

applications

Implementing requirements

for Quality of Service

Critical research issues

Focus of this Part

• Principles

• Personal ideas

Page 50: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 50

Notable reference: GrADS Project

Concept of reconfigurable program• High-level formalism• High-level information on application requirements• Components technology and composition of

applications• Performance model (“negotiation” at run-time)

Application manager:• set of static and dynamic tools that control all the

development-execution cycle of the application (including dynamic restructuring)

Page 51: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 51

Grid.it: Grids and structured parallel programming

Applications may contain parallel components• in the simplest case, a parallel component is allocated to a

single Grid node (cluster, supercomputer),• advancement in networking technology: parallelism can be

effectively exploited at the large-scale level too.

More in general, and more important: structured parallelism is a methodology for designing and for managing high-performance Grid-aware application components according to QoS requirements.

Page 52: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 52

Grid.it approach: high-performance, Grid-aware component technology

Joining component technology and structured parallel programming technology

• to achieve high-performance, Grid-aware, component-based applications

The intimate link between Grid programming and structured parallel programming

• Structured parallel programming as a methodology to enrich the component

model with features able to meet QoS requirements

• Dynamically modifying the allocation, replication / partitioning of the application

components, in order to mantain the proper degree of performance, or in order to

significantly increase performance when necessary

• Run-time exploitation of the performance models and implementation

templates (fundamental feature of structured parallel programming)

Page 53: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 53

“Contract” associated to every component (interface), defining possible application requirements:

• performance, fault tolerance, …

Every contract is specified by means a structured parallel program• using the ASSIST model

Initial configuration: established at compile-time

At run-time, the performance model is used to modify the configuration of the composition (in a parametric manner):

• replication, partitioning, scheduling policy, distribution of data, … (all are programming constructs in ASSIST)

• exploiting monitoring, profiling, performance modeling, resource management and information services

Ideas for Grid-aware components

Page 54: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 54

Example: an “adaptive pipeline”

Generator

of objects stream

Gen

Objects transformation by function F2

F2

Objects transformation by function F3

F3

Objects transformation by function F1

F1

Data intensive, Grid memory hierarchy interface

• By default: sequential implementation.

• On restructuring: farm implementation,

• number of workers determined dynamically.

• By default: data-parallel implementation onto a single parallel node.

• On restructuring: the number of partitions may be varied and allocated onto different nodes.

A stream parallel + data parallel composition mapped onto a single parallel node.

Page 55: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 55Component-structured application

Farm(initially seq) Data parallel + Farm

Data parallel StencilData-intensive Stream Generator

A snapshot of the evolution of our adaptive application at a certain time.

Page 56: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 56

Component-structured application

A possible re-allocation : according to the outcome of the performance model, some data-parallel partitions and the farm collector can be re-allocated onto different nodes.

Page 57: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 57

Component-structured application

Reconfiguration of the farm component: more workers are required to grant the needed degree of performance.

Page 58: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 58

Component-structured application

Reconfiguration of the data-parallel component: more partitions are required to grant the needed degree of performance.

Page 59: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 59

Component-structured application

Abstraction of Memory Hierarchy

Abstraction of Shared Objects

Scheduling and configuration of complex, high-volume data flows through multiple levels of hierarchy

Data-intensive applications

Page 60: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 60

Data-intensive computations in ASSIST

Object (possibly high-bandwidth) Abstraction of high-performance objects can be implemented by ASSIST parmod(s),

with proper

interface (expressed in ASSIST or another formalism)

VP VP VP

VP VP VP

VP VP VP

Input Section

Output Section

ASSIST parmod for the high-performance abstraction of Object

External Object Interface (possibly parallel)

Page 61: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

Thanks to

ASSIST group – Department of Computer Science, Univ. of Pisa: M. Aldinucci, S. Campa, P. Ciullo, M. Coppola, M. Danelutto, S. Magini, S. Moi, A. Paternesi, P. Pesciullesi, A. Petrocelli, E. Pistoletti, L. Potiti, R. Ravazzolo, M. Torquati, G. Virdis, P. Vitale, C. Zoccolo

ISTI-CNR group, Pisa: Domenico Laforenza, Salvatore Orlando (Univ. of Venice), Raffaele Perego, Nicola Tonellotto, Ranieri Baraglia

Page 62: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

Thank you for attention

Page 63: ASSIST  High-performance Programming Environment :  Application Experiences  and Grid Evolution

ASSIST - Marco Vanneschi - EuroPVM/MPI 2003, Venice 63

Current view

High-level view of Grid applications

Application

Basic HW+SW platform

MiddlewareIt is not necessarily the same Middleware “as before”: it should be defined and realized according to the needs of the Programming Environment.

•High-level languages, compositionality, modularity and interoperability

•Compiling Tools

•Run Time Support

•Performance Model (Cost Model) for static and dynamic optimizations

•Development, loading, execution, monitoring,…, reconfiguring tools

Middleware Grid Abstract Machine

Programming EnvironmentX