D. Caromel , et al. INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF
description
Transcript of 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
Denis Caromel 2
Grid ComputingLos Angeles
Beijing
Amsterdam
Sophia Antipolis
Challenges: Programming Model,
Scale, Latency, Heterogeneity,
Versatility (protocols, firewalls, etc.)
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
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
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!
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
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
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
Denis Caromel 9
IC2D: Interactive Control and Debugging of Distribution
With any ProActive applicationFeatures:
Graphical and Textual visualization Monitoring and Control
Denis Caromel 10
Monitoring of RMI, Globus, Jini, LSF cluster Nice -- Baltimore
ProActive IC2D:
Width of links
proportional
to the number
of com-
munications
Denis Caromel 11
2. Application
3D Electromagnetism
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
Denis Caromel 13
Interface
Denis Caromel 14
Interface
Denis Caromel 15
Interface
Denis Caromel 16
Interface
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 !
Denis Caromel 18
3. Components
for
The GRIDs
Denis Caromel 19
Content
Controller
The Fractal model:Hierarchical Components
Common component model of the ObjectWeb consortium
Denis Caromel 20
Content
Controller
Interfaces = Provided and Required
Provided,
Server
Interfaces
Required,
Client
Interfaces
Denis Caromel 21
Content
Controller
Hierarchical model : Composites encapsulate Primitives,
Primitives encapsulate Code
Denis Caromel 22
Content
Controller
Binding = in an external file (XML ADL), Not in programs
Denis Caromel 23
Content
Controller
Binding = in an external file (XML ADL), Not in programs
Denis Caromel 24
Graphical Interface for Composing Components
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
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
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!
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
Denis Caromel 29
On-going : MxN communicationsControl at binding points
M components
N components
GATHERING
SCATTERING
REDISTRIBUTION from M to N also, Functional Code
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
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
Denis Caromel 32
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)
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)
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)
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
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
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
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»)
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
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
Denis Caromel 42
Content
Composition View
Distributed Components Graphical Composition, Monitoring, Migration
Denis Caromel 43
Content
Composition View
Distributed Components Graphical Composition, Monitoring, Migration
Denis Caromel 44
Denis Caromel 45
3D ElectromagnetismSequential Application
Denis Caromel 46
Control Volume in 2D and 3D
Denis Caromel 47
Facets in 2D and 3D
Denis Caromel 48
Architecture of the sequential version
Denis Caromel 49
Application Skeleton
Denis Caromel 50
3D ElectromagnetismParallel version
Denis Caromel 51
Architecture of the sequential version
Denis Caromel 52
Architecture of the ProActive distributed version
An Object-Oriented SPMD program
Denis Caromel 53
3. BENCHMARKS
Denis Caromel 54
Preview 3
Denis Caromel 55
Preview 2
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
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 !