Denis Caromel 1 [email protected] A Strong Programming Model Bridging Distributed and...

106
Denis Caromel 1 [email protected] A Strong Programming Model Bridging Distributed and Multi-Core Computing 1. Background: INRIA, Univ. Nice, OASIS Team 2. Programming : Parallel Programming Models: a) Asynchronous Active Objects, Futures, Typed Groups b) High-Level Abstractions (OO SPMD, Comp., Skeleton) 3. Optimizing 4. Deploying

Transcript of Denis Caromel 1 [email protected] A Strong Programming Model Bridging Distributed and...

Page 1: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel1

[email protected]

A Strong Programming ModelBridging Distributed and Multi-Core Computing

1. Background: INRIA, Univ. Nice, OASIS Team2. Programming: Parallel Programming Models:

a) Asynchronous Active Objects, Futures, Typed Groupsb) High-Level Abstractions (OO SPMD, Comp., Skeleton)

3. Optimizing4. Deploying

Page 2: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel2

1. Background and Team at INRIA

Page 3: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel3

OASIS Team & INRIA

Computer Science and Control

• 8 Centers all over France

• Workforce: 3 800

•Strong in standardization committees:– IETF, W3C, ETSI, …

• Strong Industrial Partnerships

• Foster company foundation:

90 startups so far

- Ilog (Nasdaq, Euronext)

- …

- ActiveEon

A joint team between: INRIA, Nice Univ. CNRS

•Participation to EU projects:–CoreGrid, EchoGrid, Bionets, SOA4ALL–GridCOMP (Scientific Coordinator)

•ProActive 4.0.1: Distributed and Parallel:

From Multi-cores to Enterprise+Science GRIDs

Page 4: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel4

Startup Company Born of INRIACo-developing, Providing support for Open Source ProActive Parallel Suite

Worldwide Customers (EU, Boston USA, etc.)

Page 5: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel5

OASIS Team Composition (35)Researchers (5):

D. Caromel (UNSA, Det. INRIA)E. Madelaine (INRIA)F. Baude (UNSA)F. Huet (UNSA)L. Henrio (CNRS)

PhDs (11): Antonio Cansado (INRIA, Conicyt)Brian Amedro (SCS-Agos) Cristian Ruz (INRIA, Conicyt) Elton Mathias (INRIA-Cordi) Imen Filali (SCS-Agos / FP7 SOA4All) Marcela Rivera (INRIA, Conicyt) Muhammad Khan (STIC-Asia) Paul Naoumenko (INRIA/Région

PACA) Viet Dung Doan (FP6 Bionets) Virginie Contes (SOA4ALL)Guilherme Pezzi (AGOS, CIFRE SCP)

+ Visitors + Interns

PostDoc (1):Regis Gascon (INRIA)

Engineers (10): Elaine Isnard (AGOS)

Fabien Viale (ANR OMD2, Renault )

Franca Perrina (AGOS)

Germain Sigety (INRIA)

Yu Feng (ETSI, FP6 EchoGrid)

Bastien Sauvan (ADT Galaxy)

Florin-Alexandru.Bratu (INRIA CPER)

Igor Smirnov (Microsoft)

Fabrice Fontenoy (AGOS)

Open position (Thales)

Trainee (2):Etienne Vallette d’Osia (Master 2 ISI)

Laurent Vanni (Master 2 ISI)

Assistants (2): Patricia Maleyran (INRIA)

Sandra Devauchelle (I3S)

Page 6: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel6

ProActive Contributors

Page 7: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel7

ProActive Parallel Suite:

Architecture

Page 8: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel8

Page 9: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel9

ProActive Parallel Suite

9

Physical InfrastructurePhysical Infrastructure

Page 10: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel10

ProActive Parallel Suite

10

Page 11: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel11

2. Programming Modelsfor

Parallel & Distributed

Page 12: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel12

ProActive Parallel Suite

Page 13: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel13

ProActive Parallel Suite

Page 14: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel14 14

Distributed and Parallel

Active Objects

Page 15: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel15 15

A

ProActive : Active objects

Proxy

Java Object

A ag = newActive (“A”, […], VirtualNode)V v1 = ag.foo (param);V v2 = ag.bar (param);...v1.bar(); //Wait-By-Necessity

V

Wait-By-Necessity

is a

Dataflow

Synchronization

JVM

A

JVM

Active Object

Future Object Request

Req. Queue

Thread

v1v2 ag

WBN!

Page 16: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel16 16

First-Class Futures

Update

Page 17: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel17 17

Wait-By-Necessity: First Class Futures

ba

Futures are Global Single-Assignment Variables

V= b.bar ()

c

c

c.gee (V)

v

v

b

Page 18: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel18 18

Wait-By-Necessity: Eager Forward Based

ba

AO forwarding a future: will have to forward its value

V= b.bar ()

c

c

c.gee (V)

v

v

b

Page 19: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel19 19

Wait-By-Necessity: Eager Message Based

ba

AO receiving a future: send a message

V= b.bar ()

c

c

c.gee (V)

v

v

b

Page 20: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel20 20

Standard system at Runtime:No Sharing

NoC: Network On ChipProofs of Determinism

Page 21: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel21

(2) ASP: Asynchronous Sequential Processes

ASP Confluence and Determinacy

Future updates can occur at any time

Execution characterized by the order of request senders

Determinacy of programs communicating over trees, …

A strong guide for implementation,

Fault-Tolerance and checkpointing, Model-Checking, …

Page 22: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel22

No Sharing even for Multi-CoresRelated Talks at PDP 2009

SS6 Session, today at 16:00

Impact of the Memory Hierarchy on Shared Memory Architectures

in Multicore Programming Models

Rosa M. Badia, Josep M. Perez, Eduard Ayguade, and Jesus Labarta

Realities of Multi-Core CPU Chips and Memory Contention

David P. Barker

Page 23: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel23 23

TYPED

ASYNCHRONOUS

GROUPS

Page 24: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel24 24

A

Creating AO and Groups

Typed Group Java or Active Object

A ag = newActiveGroup (“A”, […], VirtualNode)V v = ag.foo(param);...v.bar(); //Wait-by-necessity

V

Group, Type, and Asynchrony

are crucial for Composition

JVM

Page 25: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel25 25

Broadcast and Scatter

JVM

JVM

JVM

JVM

agcg

ag.bar(cg); // broadcast cgProActive.setScatterGroup(cg);ag.bar(cg); // scatter cg

c1 c2c3c1 c2c3

c1 c2c3c1 c2c3

c1 c2c3

c1 c2c3

s

c1 c2c3

s

Broadcast is the default behavior Use a group as parameter, Scattered depends on rankings

Page 26: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel26 26

Static Dispatch Group

JVM

JVM

JVM

JVM

agcg

c1

c2

c3

c4

c5

c6

c7

c8c0

c9c1

c2

c3

c4

c5

c6

c7

c8c0

c9

c1

c2

c3

c4

c5

c6

c7

c8c0

c9

Slowest

Fastestemptyqueue

ag.bar(cg);

Page 27: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel27 27

Dynamic Dispatch Group

JVM

JVM

JVM

JVM

agcg

c1

c2

c3

c4

c5

c6

c7

c8c0

c9c1

c2

c3

c4

c5

c6

c7

c8c0

c9

c1

c2

c3

c4

c5

c6

c7

c8c0

c9

Slowest

Fastest

ag.bar(cg);

Page 28: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel28 28

Handling Group Failures (2)

JVM

JVM

JVM

JVM

agvg

V vg = ag.foo (param);Group groupV = PAG.getGroup(vg);el = groupV.getExceptionList();...vg.gee();

failure

Except.

Except.List

Page 29: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel29

Abstractions for Parallelism

The right Tool to execute the Task

Page 30: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel30 30

Object-Oriented SPMD

Page 31: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel31 31

OO SPMD A ag = newSPMDGroup (“A”, […], VirtualNode)

// In each member myGroup.barrier (“2D”); // Global Barrier myGroup.barrier (“vertical”); // Any Barrier myGroup.barrier (“north”,”south”,“east”,“west”);

A

Still,

not based on raw messages, but

Typed Method Calls

==> Components

Page 32: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel32 32

Object-Oriented SPMDSingle Program Multiple Data

MotivationUse Enterprise technology (Java, Eclipse, etc.) for Parallel Computing

Able to express in Java MPI’s Collective Communications:

broadcast reduce

scatter allscatter

gather allgatherTogether with

Barriers, Topologies.

Page 33: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel33 33

MPI Communication primitivesFor some (historical) reasons, MPI has many com. Primitives:

MPI_Send Std MPI_Recv Receive

MPI_Ssend Synchronous MPI_Irecv Immediate

MPI_Bsend Buffer … (any) source, (any) tag,

MPI_Rsend Ready

MPI_Isend Immediate, async/future

MPI_Ibsend, …

I’d rather put the burden on the implementation, not the Programmers !

How to do adaptive implementation in that context ?

Not talking about:the combinatory that occurs between send and receive

the semantic problems that occur in distributed implementations

Page 34: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel34

Application Semantics rather than

Low-Level Architecture-Based OptimizationMPI:

MPI_Send MPI_Recv MPI_Ssend MPI_Irecv MPI_Bsend MPI_Rsend MPI_Isend MPI_Ibsend

What we propose: High-level Information from Application Programmer (Experimented on 3D ElectroMagnetism, and Nasa Benchmarks)

Examples: ro.foo ( ForgetOnSend (params) );ActiveObject.exchange(…params );

Optimizations for Both Distributed & Multi-Core

Page 35: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

35

NAS Parallel Benchmarks

Designed by NASA to evaluate benefits of high performance systems

Strongly based on CFD

5 benchmarks (kernels) to test different aspects of a system

2 categories or focus variations:

• communication intensive and

• computation intensive

Page 36: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel36

Communication IntensiveCG Kernel (Conjugate Gradient)

Floating point operations

Eigen value computation

High number of unstructured communications

• 12000 calls/node

• 570 MB sent/node

• 1 min 32

• 65 % comms/WT

Message density distribution Data density distribution

Page 37: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel37

Communication IntensiveCG Kernel (Conjugate Gradient)

Comparable Performances

Page 38: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel38

Communication IntensiveMG Kernel (Multi Grid)

Floating point operations

Solving Poisson problem

Structured communications

• 600 calls/node

• 45 MB sent

• 1 min 32

• 80 % comms

Message density distribution Data density distribution

Page 39: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel39

Communication IntensiveMG Kernel (Multi Grid)

Pb. With high-ratecommunications

2D 3D matrixaccess

Page 40: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel40

Computation IntensiveEP Kernel (Embarrassingly Parallel)

Random numbers

generation

Almost no

communications

This is Java!!!

Page 41: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel41

Related Talk at PDP 2009

T4 Session, today at 14:00

NPB-MPJ: NAS Parallel Benchmarks Implementation for

Message Passing in Java

Damián A. Mallón, Guillermo L. Taboada, Juan Touriño, Ramón Doallo

Univ. Coruña, Spain

Page 42: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel42 42

Parallel Components

Page 44: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel44 44

Objects to Distributed Components

Typed Group Java or Active Object

V

AExample of

component

instance

JVM

Truly

Distributed

Components

IoC:InversionOf Control(set in XML)

Page 45: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

04/19/23

Denis Caromel

GCMScopes and Objectives:

Grid Codes that Compose and Deploy

No programming, No Scripting, … No Pain

Innovation:

Abstract Deployment

Composite Components

Multicast and GatherCast

MultiCastMultiCast GatherCastGatherCast

Page 46: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel46

Optimizing MxN Operations

2+ composites can be involved in the Gather-

multicast

Page 47: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel47

Related Talk at PDP 2009

T1 Session, Yesterday at 11:30

Towards Hierarchical Management of Autonomic Components:

a Case Study

Marco Aldinucci, Marco Danelutto, and Peter Kilpatrick

Page 48: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel48

Skeleton

Page 49: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

04/19/23

Denis Caromel49

Algorithmic Skeletons for ParallelismHigh Level Programming Model [Cole89]

Hides the complexity of parallel/distributed programming

Exploits nestable parallelism patterns

Task

Parallelism Patterns

for

farm

pipeif

while

mapfork

divide & conquerData

fork

seq(f1) seq(f

2)

pipe

seq(f3)

d&c(fb,f

d,f

c)

BLAST Skeleton Program

Page 50: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

04/19/23

Denis Caromel50

Algorithmic Skeletons for ParallelismHigh Level Programming Model [Cole89]

Hides the complexity of parallel/distributed programming

Exploits nestable parallelism patterns

Task

Parallelism Patterns

for

farm

pipeif

while

mapfork

divide & conquerData

fork

seq(f1) seq(f

2)

pipe

seq(f3)

d&c(fb,f

d,f

c)

BLAST Skeleton Program

public boolean condition(BlastParams param){

File file = param.dbFile;

return file.length() > param.maxDBSize;}

public boolean condition(BlastParams param){

File file = param.dbFile;

return file.length() > param.maxDBSize;}

Page 51: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel51 51

3. Optimizing

Page 52: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel52

Programming & OptimizingMonitoring, Debugging, Optimizing

Page 53: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel53

Page 54: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel54

Optimizing User Interface

Page 55: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel55

IC2D

Page 56: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel56

ChartIt

Page 57: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel57

Pies for Analysis and Optimization

Page 58: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel58

Video 1: IC2D OptimizingMonitoring, Debugging, Optimizing

Page 59: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel59

Page 60: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel60 60

4. Deploying &

Scheduling

Page 61: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel61

Page 62: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel62

Deploying

Page 63: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel63

Deploy on Various Kinds of Infrastructures

Internet

Clusters

ParallelMachine

LargeEquipment

Internet

Job management forembarrassingly parallel application (e.g. SETI)

Internet

Internet

Servlets EJBs Databases

Page 64: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel64

GCM StandardizationFractal Based Grid Component Model

4 Standards:1. GCM Interoperability Deployment2. GCM Application Description 3. GCM Fractal ADL4. GCM Management API

Overall, the standardization is supported by industrials: BT, FT-Orange, Nokia-Siemens, Telefonica,

NEC, Alcatel-Lucent, Huawei …

Page 65: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel65

Protocols and Scheduler inGCM Deployment Standard

Protocols:Rsh, sshOarsh, Gsissh

Scheduler, and Grids:GroupSSH, GroupRSH, GroupOARSHARC (NorduGrid), CGSP China Grid, EEGE gLITE, Fura/InnerGrid (GridSystem Inc.)GLOBUS, GridBusIBM Load Leveler, LSF, Microsoft CCS (Windows HPC Server 2008)Sun Grid Engine, OAR, PBS / Torque, PRUN

Soon available in stable release:Java EE

Amazon EC2

Page 66: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel66

Abstract Deployment Model

ProblemDifficulties and lack of flexibility in deployment Avoid scripting for configuration, getting nodes, connecting…

662009

A key principle: Virtual Node (VN)

Abstract Away from source code:Machines names

Creation/Connection Protocols

Lookup and Registry Protocols

Interface with various protocols and infrastructures:Cluster: LSF, PBS, SGE , OAR and PRUN (custom protocols)

Intranet P2P, LAN: intranet protocols: rsh, rlogin, ssh

Grid: Globus, Web services, ssh, gsissh

Page 67: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel67

Resource Virtualization

67

ApplicationApplication

Deployment DescriptorDeployment Descriptor

Mapping

ConnectionsConnections

NodesNodes

AcquisitionAcquisition

CreationCreation

Infrastructure

VN

Runtime structured entities: 1 VN --> n Nodes in m JVMs on k Hosts

2009

Page 68: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel68

Resource Virtualization

68

VN1

VN2

GCM XMLDeployment Descriptor

node

node

HostJVM

node

JVM

Host

node

JVM

2009

Page 69: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel69

Virtualization resources

69

VN1

VN2

node

node

HostJVM

node

JVM

Host

node

JVM

2009

Page 70: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel70

Multiple Deployments

70

One Host Local Grid Distributed Grids

Internet

2009

Page 71: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel71

SchedulingMode

Page 72: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel72

Programming with flows of tasks

Program an application as an ordered set of tasksLogical flow : Tasks execution are orchestrated

Data flow : Results are forwarded from ancestor tasks to children as parameter

The task is the smallest execution unit

Two types of tasks: - Standard Java

- Native, i.e. any third party application (binary, scripts, etc.)

72

Task 1(input 1) Task 2(input 2)

Task 3(res1,res2)

res1 res2

2009

Page 73: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel73

Defining and running jobs with ProActiveA workflow application is a job

a set of tasks which can be executed according to a

dependency tree

Rely on ProActive Scheduler

Java or XML interface

Dynamic job creation in Java

Static description in XML

Task failures are handled by the ProActive Scheduler

A task can be automatically re-started or not (with a user-defined bound)

Dependant tasks can be aborted or not

The finished job contains the cause exceptions as results if any

732009

Page 74: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel74

Scheduler / Resource Manager Overview

74

• Multi-platform Graphical Client (RCP)

• File-based or LDAP authentication

• Static Workflow Job Scheduling, Native and Java tasks, Retry on Error, Priority Policy, Configuration Scripts,…

• Dynamic and Static node sources, Resource Selection by script, Monitoring and Control GUI,…

• ProActive Deployment capabilities : Desktops, Clusters, ProActive P2P,…

2009

Page 75: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel75

Scheduler: User Interface

Page 76: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel76

Scheduler: User Interface

Page 77: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel77 77

Video 2:

Scheduling Scheduler and Resource Manager:

See the video athttp://proactive.inria.fr/userfiles/media/video

s/Scheduler_RM_Short.mpg

Page 78: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel78

Page 79: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel79

Summary

Page 80: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel80

Current Open Source Tools:

Acceleration Toolkit :Concurrency

+Parallelism +Distribution

Page 81: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel81

Conclusion

Applications:

3D Electromagnetism SPMD on 300 machines at once Groups of over 1000!Record: 4 000 Nodes

► Summary: Programming: OO

Asynchrony, First-Class Futures, No SharingHigher-level Abstractions (SPMD, Skel., …)

Composing: Hierarchical Components Optimizing: IC2D Eclipse GUI Deploying: ssh, Globus, LSF, PBS, …, WS

Our next target: 10 000 Core Applications

Page 82: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel82

Conclusion: Why does it scale?

Thanks to a few key features:

Connection-less, RMI+JMS unified

Messages rather than long-living interactions

Page 83: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel83

Conclusion: Why does it Compose?

Thanks to a few key features:

Because it Scales: asynchrony !

Because it is Typed: RMI with interfaces !

First-Class Futures: No unstructured

Call Backs and Ports

Page 84: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel84

Perspectives for Parallelism & Distribution• A need for several, coherent, Programming Models for different applications:

– Actors (Functional Parallelism) + Active Objects + Futures– OO SPMD: optimizations away from low-level optimizations– Parallel Component: Codes and Synchronizations:

• MultiCast GatherCast: Capturing // Behavior at Interfaces! – Adaptive Parallel Skeletons– Event Processing (Reactive Systems)

Efficient Implementations are needed to prove Ideas!

Proofs of Programming Model Properties Needed for Scalability!

Our Community never had a greatest Future!

Thank You for your attention!

Page 85: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel85

Page 86: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel86

Extra Material

Grid + SOA

J2EE + Grid

Amazon EC2 ProActive Image and Deployment

Page 87: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel87

Perspective:

SOA + Grid

Page 88: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel88

SOA Integration:Web Services, BPEL Workflow

Page 89: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel89

Active Objects as Web Services

Why ?

Access Active Objects from any language

How ?

HTTP Server

SOAP Engine (Axis)

Usage:

ProActive.exposeAsWebService();

ProActive.unExposeAsWebService();

JVM

Web Service Client

Web Services

Page 90: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel90

ProActive + Services + Workflows

Principles:3 kinds of Parallel Services

3. Domain Specific Parallel Services (e.g. Monte Carlo Pricing)

2. Typical Parallel Computing Services (Parameter Sweeping, D&C, …)

1. Basic Job Scheduling Services (parallel execution on the Grid)

Page 91: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel91

3 kinds of Parallel Services

3. Domain Specific ParallelServices: providing business functionalities executed inparallel

2. Parallelization services:typical parallel computingpatterns (ParameterSweeping, D&C, …)

1. Job Scheduling service: Schedule and Run jobs in parallel on the Grid.

Parallel ServicesParallel Services Operational ServicesOperational Services…

1. Job Scheduling

Service

2. ParameterSweeping

Service

2. Divide & Conquer Service

OtherOperational

Service

Domain Specific Parallel Service

…Other

Basic Service

High level Business Process

GridGrid

3. Domain Specific Parallel

Service

Page 92: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel92

A sample pattern: Parameter Sweeping

I1I2

…In

O1O2

…On

ExecLogic

parameter sweeping

I1I2…In

O1O2…On

Parameter SweepingService, customized with an Exec logic X

ParamSweeping

Service

Process using parameter sweeping service

All the running instances of the Exec logic X are executed on the grid as a whole

PA Scheduler &PA Scheduler &PA Resource ManagerPA Resource Manager

Page 93: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel93

Video

SOA Integration:Web Services, BPEL Workflow

Page 94: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel94

6. J2EE IntegrationFlorin Alexandru Bratu

OASIS Team - INRIA

Page 95: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel95

J2EE Integration with Parallelism + Grids/Clouds

Performing Grid & Cloud Computing

From & In

an Application Servers

1. Delegating heavy computations outsides J2EE Applications

2. Using Deployed J2EE Nodes as Computational Resources

Page 96: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel96

ProActive – J2EE Integration (1)

1. Delegating heavy computations outsides J2EE Applications

Page 97: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel97

ProActive – J2EE Integration (2)

2. Using Deployed J2EE Nodes as Computational Resources

Objective Being able to deploy active objects inside the JVMs of application servers

Implementation Based on a Sun standard – Java Connector Architecture JSR112 Deployment module: resource adapter (RAR) Works with all J2EE-compliant Application Servers

Page 98: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Integration(2)

Page 99: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel99

Grids & Clouds:

Amazon EC2 Deployment

Page 100: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel100

Big Picture + Clouds

Page 101: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel101

Clouds: ProActive Amazon EC2 Deployment

Principles & Achievements:

ProActive Amazon Images (AMI) on EC2

So far up to 128 EC2 Instances

(Indeed the maximum on the EC2 platform, … ready to try 4 000 AMI)

Seamless Deployment:

no application change, no scripting, no pain

Open the road to : In house Enterprise Cluster and Grid + Scale out on EC2

Page 102: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel102

ProActive Deployment onAmazon EC2

Video

Page 103: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel103

Page 104: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel104

P2P:Programming

Modelson

Overlay Networks

Page 105: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel105

Page 106: Denis Caromel 1 Denis.Caromel@inria.fr A Strong Programming Model Bridging Distributed and Multi-Core Computing 1.Background: INRIA, Univ. Nice, OASIS.

Denis Caromel106