D. Caromel , et al. INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

57
Denis Caromel 1 D. Caromel , et al. INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF June 23 2005, Beijing Open Source Middleware for the Grid: ObjectWeb ProActive 1. Asynchronous Distributed Objects: ProActive 2. Example of Application: 3D Electromagnetism 3. Composing for the Grids: Components ProActive. ObjectWeb. org

description

Open Source Middleware for the Grid: ObjectWeb ProActive. 1. Asynchronous Distributed Objects: ProActive 2. Example of Application: 3D Electromagnetism 3. Composing for the Grids: Components. D. Caromel , et al. INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF - PowerPoint PPT Presentation

Transcript of D. Caromel , et al. INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Page 1: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 1

D. Caromel, et al. INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

June 23 2005, Beijing

Open Source Middleware for the Grid: ObjectWeb ProActive

1. Asynchronous Distributed Objects: ProActive

2. Example of Application: 3D Electromagnetism

3. Composing for the Grids: Components

ProActive.

ObjectWeb.

org

Page 2: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 2

Grid ComputingLos Angeles

Beijing

Amsterdam

Sophia Antipolis

Challenges: Programming Model,

Scale, Latency, Heterogeneity,

Versatility (protocols, firewalls, etc.)

Page 3: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 3

1. Distributed Objects

P r o g r a m m i n g

Composing

Deploying

W r a p p i n g

Page 4: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 4

A uniform framework: An Active Object pattern A formal model behind: Determinism (POPL’04)

Programming Model:• Remote Objects• Asynchronous Communications, Wait-By-Necessity • Groups, Mobility, Components, Security, Fault-ToleranceEnvironment:• XML Deployment Descriptors• Interfaced with: rsh, ssh, LSF, PBS, Globus, Jini, SUN Grid Engine• Graphical Visualization and monitoring: IC2DIn the www. ObjectWeb .org Consortium (Open Source LGPL)

ProActive: A Java API + Tools for Parallel, Distributed Computing

Page 5: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 5

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 6: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 6

Explicit Synchronizations

Single Future Synchronization:ProActive.isAwaited (v); // Test if available .waitFor (v); // Wait if not available

Vectors of Futures: .waitForAll (Vector); // Wait all of them .waitForAny (Vector); // Get One

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

Page 7: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 7

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 Cpt. and GRID

JVM

Object-Oriented

Typed Group Communications

Page 8: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 8

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 9: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 9

IC2D: Interactive Control and Debugging of Distribution

With any ProActive applicationFeatures:

Graphical and Textual visualization Monitoring and Control

Page 10: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 10

Monitoring of RMI, Globus, Jini, LSF cluster Nice -- Baltimore

ProActive IC2D:

Width of links

proportional

to the number

of com-

munications

Page 11: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 11

2. Application

3D Electromagnetism

Page 12: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 12

JEM 3D : Java 3D Electromagnetism

Maxwell 3D equation solver, Finite Volume Method (FVM)Pre-existing Fortran MPI version: EM3D (CAIMAN team @ INRIA)

Execution Time on a cluster

0

100

200

300

400

500

600

700

800

900

0 10 20 30 40 50 60 70nombre de processeurs

tem

ps

(sec

on

des

)

21*21*21

31*31*31

43*43*43

55*55*55

81*81*81

97*97*97

113*113*113

121*121*121

Mesh Size

Page 13: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 13

Interface

Page 14: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 14

Interface

Page 15: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 15

Interface

Page 16: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 16

Interface

Page 17: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 17

Beating Fortran MPI ?

Current status:

• Sequential Java vs. Fortran code: 2 times slower

• Large data sets in Java ProActive: 150x150x150 (100 million facets)

• Large number of machines: up to 294 machines in Desktop P2P• Speed up on 16 machines:- Fortran: 13.8

- ProActive/Ibis: 12

- ProActive/RMI:8.8

Grid on 5 clusters (DAS II, Netherlands): Speed up of 100 on 150 machines

Fortran: no more than 40 proc. …

Beating Fortran MPI with Java ProActive? X/40 (14/16) = 2X/ n (100/150)

Yes, starting at 105 machines !

Page 18: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 18

3. Components

for

The GRIDs

Page 19: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 19

Content

Controller

The Fractal model:Hierarchical Components

Common component model of the ObjectWeb consortium

Page 20: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 20

Content

Controller

Interfaces = Provided and Required

Provided,

Server

Interfaces

Required,

Client

Interfaces

Page 21: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 21

Content

Controller

Hierarchical model : Composites encapsulate Primitives,

Primitives encapsulate Code

Page 22: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 22

Content

Controller

Binding = in an external file (XML ADL), Not in programs

Page 23: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 23

Content

Controller

Binding = in an external file (XML ADL), Not in programs

Page 24: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 24

Graphical Interface for Composing Components

Page 25: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 25

ProActive Component DefinitionA component is:

• Formed from one (or several) Active Object

• Executing on one (or several) JVM

• Provides a set of server ports: Java Interfaces

• Uses a set of client ports: Java Attributes

• Point-to-point or Group communication between components

Hierarchical:• Primitive component: define with Java code and a descriptor

• Composite component: composition of primitive + composite

• Parallel component: multicast of calls in composites

Descriptor:• XML definition of primitive and composite (ADL)

• Virtual nodes capture the deployment capacities and needs

Virtual Node is a very important abstraction for GRID components

Page 26: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 26

Objects to Distributed Components

Typed Group Java or Active Object

ComponentIdentity Cpt = newActiveComponent (params);A a = Cpt … .getFcInterface ("interfaceName");V v = a.foo(param);

V

AExample of

component

instance

JVM

Page 27: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 27

A

A

B

C

P

Group proxyGroup proxy

A

B

C

D

Groups in Components

Broadcast at binding,

on client interfaceAt composition,

on composite inner server interface

A parallel component!

Page 28: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 28

Wrapping Legacy MPI Components

MPI CodeC/Fortran:

Messages on Tags

sent/converted to

Method Calls

ProActive Java:

Method Calls

sent as

Messages on Tags

Virtual Nodes for Deployments

Page 29: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 29

On-going : MxN communicationsControl at binding points

M components

N components

GATHERING

SCATTERING

REDISTRIBUTION from M to N also, Functional Code

Page 30: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 30

Call For ContributionsGCM: Grid Component Model

Within CoreGRID

In charge (M. Danelutto, D. Caromel) of defining a Generic, Comprehensive, Open, European and World Wide

GCM: Grid Component Model

Ways to participate: Email to us, come to the GRID @ Work Workshop Oct. 14 2005

Page 31: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 31

Conclusions and A Few Directions

ProActive: A Strong Programming Model + Components

FACTS AND FIGURES

June 10 World Record: 52-years computation in 6 months in Desktop P2P

Deployed at once on 1000 CPUs (Plugtests on ssh, Globus, LSF, ...)

(Close to) Beating Fortran on an Electromagnetic Application

Looking for collaborations: • Building reusable Cpts from Numerical Codes • Generic Techniques for Wrapping Codes

Available in LGPL with ObjectWeb

http://ProActive.ObjectWeb.org

Page 32: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 32

Page 33: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 33

ProActive Non Functional Properties

Currently in ProActive:

• Remotely accessible Objects(Classes, not only Interfaces, Dynamic)

• Asynchronous Communications

• First Class Futures: Wait-By-Necessity

• Group Communications, OO SPMD

• Mobility

• Visualization and monitoring (IC2D)

• Fault-Tolerance (checkpointing),

• Security

• Components

• Non-Functional Exceptions: Handler reification (prototype)

Page 34: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 34

3. Parallel and composite component

1. Primitive component

2. Composite component

ProActive Components for the GRID An activity, a process, …potentially in its own JVM

C D

Composite: Hierarchical, and

Distributed over machines

Parallel: Composite

+ Broadcast (group)

Page 35: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 35

Call between Objects:Parameter passing: Copy of Java Objects

ba

x

Copy:at

serialization

(Deep) Copies evolve independently -- No consistency

b.foo(x)

Page 36: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 36

Call between Objects: Parameter Passing: Active Objects

ba

x

Copy:at serialization

Object passed by Deep Copy - Active Object by Reference

b.foo(x, c)

c

c

Reference Passing

Page 37: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 37

Wait-By-Necessity: First Class Futures

ba

Futures are Global Single-Assignment Variables

V= b.bar ()

c

c

c.gee (V)

v

v

Page 38: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 38

Use only Virtual Nodes in the source code

Describe mapping of virtual nodes in XML Deployment Descriptors

Interfaced with various protocols for creation/lookup: rsh,ssh,Jini, LSF,PBS,Globus,OGSA...

Abstract away machines, creation, registry, lookup protocolsVirtualNodes:

Dispatcher <RegisterIn RMIregistry, Globus, Grid Service, …> RendererSetMapping:

Dispatcher --> DispatcherJVM RendererSet --> JVMsetJVMs:

DispatcherJVM = <javapath …/> <classpath…/> sshProcess JVMset = <javapath …/> <classpath…/> GlobusProcessProcesses:

sshProcess = <hostname di.unice.fr/> <login../> GlobusProcess = <hostname cluster.inria.fr/> <gram port 2119/> <node 10/>

Unification of various

deployment systems

through ProActive runtimes

Working on: acquire ProActive runtimes from voluntary PCs (P2P computing) running a ProActive P2P infrastructure

Model and tools for deployment on the grid

Page 39: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 39

Physical infrastructure

JVM3

JVM2

JVM4

JVM5

computer2

computer3

RuntimeDeployment Descriptor

Abstract deployment modelSeparates design from deployment infrastructure

Virtual nodes

Dynamic enactement of the deployment, from the application

•Host names•Creation protocols of

JVMs•lookup

•registration

Virtual architecture

Source code

VN1

VN2

ActivateMapping(«  VN1 »)

ActivateMapping(«  VN2»)

Page 40: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 40

Jem3D: Geometry definition

A Generic Numerical Method: Finite Volume Method (FVM)

(vs. Finite Element Methods)• Calculation of unknowns as average of Control Volume

(vs. Vertices of the mesh for FEM)

• Valid on structured, unstructured, or hybrid meshes

Computation: • a flux balance through the boundary of Control Volume (M, E, EM, loop)

Benchmarks here:• Control Volume = Tetrahedron

• Facet = Triangle

Page 41: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 41

Same application, many deployments

One Host Local Grid Distributed Grids

Internet

•User constraints can be considered, but are manually expressed in deployment descriptors•Can interface with meta-Grid Schedulers / mappers

Page 42: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 42

Content

Composition View

Distributed Components Graphical Composition, Monitoring, Migration

Page 43: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 43

Content

Composition View

Distributed Components Graphical Composition, Monitoring, Migration

Page 44: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 44

Page 45: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 45

3D ElectromagnetismSequential Application

Page 46: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 46

Control Volume in 2D and 3D

Page 47: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 47

Facets in 2D and 3D

Page 48: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 48

Architecture of the sequential version

Page 49: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 49

Application Skeleton

Page 50: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 50

3D ElectromagnetismParallel version

Page 51: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 51

Architecture of the sequential version

Page 52: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 52

Architecture of the ProActive distributed version

An Object-Oriented SPMD program

Page 53: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 53

3. BENCHMARKS

Page 54: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 54

Preview 3

Page 55: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 55

Preview 2

Page 56: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 56

JEM 3D : Summary of BenchmarksSeq. Java/Fortran: 2

Comparison:

Jem3D over

- ProActive/RMI Sun

- ProActive/RMI Ibis

Em3D in

- Fortran/MPI

On 16 machines:

Fortran: 13.8

ProActive/Ibis: 12

ProActive/RMI: 8.8

Grid experiment on 5 clusters (DAS 2): Speed up of 100 on 150 machines

Page 57: D. Caromel , et al.  INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF

Denis Caromel 57

Conclusion - Beating Fortran ?

Current status:

• Sequential Java vs. Fortran code: 2 times slower

• Large data sets in Java ProActive: 150x150x150 (100 million facets)

• Large number of machines: up to 294 machines in Desktop P2P• Speed up on 16 machines:- Fortran: 13.8

- ProActive/Ibis: 12

- ProActive/RMI:8.8

Grid on 5 clusters (DAS 2): Speed up of 100 on 150 machines

Fortran: no more than 40 proc. …

Beating Fortran MPI with Java ProActive? X/40 (14/16) = 2X/ n (100/150)

Yes, starting at 105 machines !