Denis Caromel 1
Denis CaromelInstitut universitaire de France (IUF)
OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis
JAOO, Cannes, May 2004
Programming, Composing, Deployingfor the GRID
1. Grid principles2. Distributed Objects and Components:
ObjectWeb ProActive LGPL environment3. Application: 3D Electromagnetism4. Towards Peer-To-Peer (P2P)
Denis Caromel 2
The GRIDPCs : 1 Milliard in 2002 (25 years) Forecast: 2 Milliards in 2008
Denis Caromel 3
The Grid idea
GRID = Electric Network
Computer Power (CPU cycles) <==> Electricity • Can hardly be stored, if not used --> Lost
But CPU cycles much harder to share than electricity:• Production cannot be adjusted!• Cannot really be delivered where needed! • Not yet interoperability: Multiple Administrative Domains
2 important aspects : Computational + Data Grid
Global management, Mutual sharing of the resource
Denis Caromel 4
Example
50 Machines, 1.5 year of computation
5000 Machines, with only 50 % Efficiency==> 10 days
Applications:• Simulate the stock market evolution• Research for an urgent vaccine • Forecast a bush-fire path• Forecast in real time a flooding consequences ...
• etc.
Challenge: Scale up
Denis Caromel 5
Ubiquitous: some numbers
PCs in my lab (INRIA Sophia) : ~ 1500 French Riviera : 1.3 Millions
France : 25 Millions Europe : 108 Millions USA : 400 Millions
World : 1 Milliard in 2002 (25 ans) Forecast: 2 Milliards in 2008
France :
• 36 Millions of cellular phones
• 2.2 Millions of laptops
• 630 Thousand PDA
(sources: ITU, Gartner Dataquest, IDC, 02-03, )
Denis Caromel 6
The multiple GRIDs
Scientific Grids :• Parallel machines, Clusters
• Large equipments: Telescopes, Particle accelerators, etc.
Enterprise Grids :• Data, Integration: Web Services
• Remote connection, Security
Intranet and Internet Grids, (miscalled P2P grid):• Desktop office PCs: Desktop Intranet Grid
• Home PC: Internet Grid (e.g. SETI@HOME)
Denis Caromel 7
Enterprise Grids
Internet
EJBServletsApache Databases
Denis Caromel 8
Scientific Grids
Internet
Clusters
ParallelMachine
LargeEquipment
Denis Caromel 9
Internet Grids
Internet
Job management forembarrassingly parallel application (e.g. SETI)
Denis Caromel 10
The multiple GRIDs
• Scientific Grids
• Enterprise Grids
• Intranet and Internet Grids
Strong convergence in process!At least at the infrastructure level, i.e. WS
Denis Caromel 11
Grid: from enterprise ... to regional
Very hard deployment problems … right from the beginning
Denis Caromel 12
Grid: from regional ... to worldwide Communication Cannes-Los Angeles: 70 ms Light Speed
Challenge: Hide the latency !
Define adequate programming model
Denis Caromel 13
Distributed Objects and Components
ProActiveProgramming
Denis Caromel 14
Model:• Remote Objects (Active Objects vs. Java RMI)• Asynchronous Communications, with automatic Futures • Group Communications, Migration (computation mobility)Environment:• XML Deployment, dynamic class-loading• Various protocols: rsh, ssh, LSF, Globus, BPS, ...• Graphical Visualization and monitoring: IC2D
ProActive: A Java API + Tools for the GRIDParallel, Distributed, Mobile, Activities, across the world !
SMP ClustersLANDesktop
Denis Caromel 15
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
Denis Caromel 16
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
Denis Caromel 17
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
Denis Caromel 18
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
direct
Denis Caromel 19
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
direct
direct
Denis Caromel 20
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
direct
direct
forwarder
Denis Caromel 21
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
direct
direct
forwarder
Denis Caromel 22
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
direct
direct
forwarder
Denis Caromel 23
Mobility
Same semantics guaranteed (RDV, FIFO order point to point, asynchronous)
Safe migration (no agent in the air!)
Local references if possible when arriving within a VM
Tensionning (removal of forwarder)
direct
direct
forwarder
Denis Caromel 24
Parallel, Distributed, Hierarchical
Componentsfor the Grid
Composing
Denis Caromel 25
A CORBA Component
MyBusiness
Component
Component interface
Facets
Eventsources
Eventsinks
Attributes
Receptacles
OF
FE
RE
DR
EQ
UIR
ED
Courtesy of Philippe Merle, Lille, OpenCCM platform
Denis Caromel 26
Building CCM Applications =Assembling CORBA Component Instances
Provide + Use, but flat assembly
Denis Caromel 27
Content
Controller
The Fractal model:Hierarchical Component
Defined by E. Bruneton, T. Coupaye, J.B. Stefani, INRIA & FT
Denis Caromel 28
Content
Controller
Interface = access point
Denis Caromel 29
Content
Controller
Hierarchical model : composites encapsulate primitives, which encapsulates Java code
Denis Caromel 30
Content
Controller
Binding = interaction
Denis Caromel 31
Binding = interaction
Content
Controller
Denis Caromel 32
Controllers : non-functional properties
ComponentIdentity
BindingController
LifeCycleController
ContentController
Content
Controller
Component = runtime entity
Denis Caromel 33
3. Parallel and composite component
1. Primitive component Java + Legacy
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 34
Composing: XML ADLPrimitive-component "cd-player”
implementation = "CdPlayer” // Java class with functional code
Provides interface "input” …
Requires …
VirtualNode = VNa // Virtual Node name
Composite-component ”stereo”
VirtualNode = VNc, vn ... // Virtual Node
Provides … Requires …
Primitive-component ”cd-player”
Primitive-component ”speaker”
Bindings bind "cd-player.output" to "speaker.input"
Merging VNa, VNb, ---> VNc // Co-allocation in that case
Example of
an XML
component
file:
Denis Caromel 35
A
A
B
C
P
Group proxyGroup proxy
A
B
C
D
Groups in Components
Broadcast at binding, on client interface
At composition, on composite inner server interface
A parallel component!
Denis Caromel 36
Migration Capabilityof composites
Migrate sets of components, including composites
Denis Caromel 37
Migration Capabilityof composites
Migrate sets of components, including composites
Denis Caromel 38
Co-allocation, Re-distribution
e.g. upon communication intensive phase
Denis Caromel 39
Co-allocation, Re-distribution
e.g. upon communication intensive phase
Denis Caromel 40
Co-allocation, Re-distribution
e.g. upon communication intensive phase
Denis Caromel 41
EnvironmentDeploying
Denis Caromel 42
How to deploy on the Various Kind of Grids ?
Internet
EJBServletsApache Databases
Internet
ClustersParallelMachine
LargeEquipment
Internet
Job management forembarrassingly parallel application (e.g. SETI)
Denis Caromel 43
Abstract Deployment Model
Problem:• Difficulties and lack of flexibility in deployment
• Avoid scripting for: configuration, getting nodes, connecting, etc.
A key principle: Virtual Node (VN) + XML deployment file • Abstract Away from source code:
• Machines
• Creation Protocols
• Lookup and Registry Protocols
Protocols and infrastructures:
• Globus, ssh, rsh, LSF, PBS, … Web Services, WSRF, ...
Denis Caromel 44
Mapping Virtual Nodes: example (1)<processDefinition id="linuxJVM">
<jvmProcess class="org.objectweb.proactive.core.process.JVMNodeProcess"/>
</processDefinition>
<processDefinition id=”sshProcess">
<sshProcess class="org.objectweb.proactive.core.process.ssh.SSHJVMProcess"
hostname="sea.inria.fr">
<processReference refid="linuxJVM"/>
</sshProcess>
</processDefinition>
Infrastructure
informations
JVM on the current Host
JVM started using SSH
Denis Caromel 45
<processDefinition id=" clusterProcess ">
<bsubProcess class="org.objectweb.proactive.core.process.lsf.LSFBSubProcess"
hostname=”cluster.inria.fr">
<processReference refid=”singleJVM"/>
<bsubOption>
<processor>12</processor>
</bsubOption>
</bsubProcess>
</processDefinition>
Mapping Virtual Nodes: example (2)
Infrastructureinformations
Definition of LSF deployment, … Globus
Denis Caromel 46
C A B
VNa VNb
C A B
VNc = VN(a,b)
XML Deployment (Not in source)
Separate or Co-allocation
Denis Caromel 47
IC2D: Interactive Control and Debugging of Distribution
Denis Caromel 48
Monitoring of RMI, Globus, Jini, LSF cluster Nice -- Baltimore
ProActive IC2D:
Width of links
proportional
to the number
of com-
munications
Denis Caromel 49
Application
Denis Caromel 50
A Parallel Object-Oriented Application for 3D Electromagnetism
Visualize the radar reflection of a plane, medicine on head, etc.• Pre-existing Fortran MPI version: EM3D
Jem3D:• Sequential object-oriented design, modular and extensible (in Java)
• Sequential version can be smoothly distributed:
--> keeping structuring and object abstractions
• Efficient distributed version, large domains, Grid environment
Denis Caromel 51
The interface
Denis Caromel 52
Some ResultsSeq. 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 53
Perspective:
P2P
Denis Caromel 54
Architectures: Server to Peer-To-Peer (P2P)
Internet
EJBServletsApache Databases
SOA: Service Oriented Architectures
Denis Caromel 55
Pure P2P: Definition
Only PEERs, no above everything, top level, server(s)
Every peer is, somehow, also a server
No master … No slave !
System get organized dynamically, without static configuration
Coherent, desired behavior, dynamically emerges
Denis Caromel 56
P2P Examples (1)
Denis Caromel 57
P2P can be difficult:need to be fault-tolerant, self healing
Denis Caromel 58
Not a P2P system
Denis Caromel 59
Neither a P2P system
Denis Caromel 60
P2P Examples (2)
Denis Caromel 61
P2P Examples (2bis)
Denis Caromel 62
A P2P system at work
Credit: from the movie Atlantis, Luc Besson
Denis Caromel 63
Conclusion
• GRIDs: - Scientific - Enterprise - Internet Strong convergence in process (infrastructure): WS, WSRF
• Challenge: adequate and precise programming+composing model• Asynchronous distributed objects, Mobility, Components • High-level of abstraction, still Open and flexible • Modern languages: Java, or others
not Fortran, MPI, C++, … not the answer
Perspectives:• Real P2P• Interactive, Graphical, Deployment and Control:
Content
http://ProActive.ObjectWeb.org
Denis Caromel 64
Interactive Composition in IC2D
Content
Composition ViewInstead of
XML ADL
<processDefinition id="linuxJVM">
<jvmProcess class="org.objectweb.proactive.core.process.JVMNodeProcess"/>
</processDefinition>
<processDefinition id=”sshProcess">
<sshProcess class="org.objectweb.proactive.core.process.ssh.SSHJVMProcess"
hostname="sea.inria.fr">
<processReference refid="linuxJVM"/>
</sshProcess>
</processDefinition>
Denis Caromel 65
Merging Component + Activity / JVM Views:Component Monitoring
Content
Dynamic View
Denis Caromel 66
Content
Dynamic View
Merging Component + Activity / JVM Views:Component Monitoring
Denis Caromel 67
Conclusion (2)Infrastructure and Deployment
• Virtual Nodes and XML • Protocols: ssh, Globus, LSF, PBS, …• Transport: RMI, Ibis (Amsterdam)• Web Services: XML, WSDL, SOAP (ongoing)• OSGi (future work)
Available in LGPL with ProActive http://ProActive.ObjectWeb.org in
The freedom your applications deserve!
Currently: a single application on 300 machinesGoal: towards a few 1000s !
Denis Caromel 68
Denis Caromel 69
Denis Caromel 70
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 71
Virtual Nodes in Programs (1)
Load the descriptor file
Descriptor pad = ProActive.getDescriptor ("file://ProActiveDescriptor.xml");
Activate the mapping
VirtualNode vn = pad.activateMapping ("Dispatcher");
// Triggers the JVMs
Use nodes
Node node = vn.getNode(); ... C3D c3d = ProActive.newActive("C3D", param, node);
Denis Caromel 72
Descriptors: Virtual Nodes in Programs (2)
Descriptor pad = ProActive.getDescriptor ("file:.ProActiveDescriptor.xml");
VirtualNode vn = pad.activateMapping ("Dispatcher"); // Triggers the JVMs
Node node = vn.getNode(); ... C3D c3d = ProActive.newActive("C3D", param, node);
log ( ... "created at: " + node.name() + node.JVM() + node.host() );
Denis Caromel 73
Descriptors: Virtual Nodes in Programs (3)
Descriptor pad = ProActive.getDescriptor ("file:.ProActiveDescriptor.xml");
VirtualNode vn = pad.activateMapping ("Dispatcher"); // Triggers the JVMs
Node node = vn.getNode(); ... C3D c3d = ProActive.newActive("C3D", param, node);
log ( ... "created at: " + node.name() + node.JVM() + node.host() );
// Cyclic mapping: set of nodes VirtualNode vn = pad.activateMapping ("RendererSet");
while ( … vn.getNbNodes … ) {
Node node = vn.getNode();
Renderer re = ProActive.newActive(”Renderer", param, node);
Denis Caromel 74
Component Orientedness
• Level 1: Instantiate - Deploy - Configure• Simple Pattern
• Meta-information (file, XML, etc.) JavaBeans, EJB
• Level 2: Assembly (flat)• Server and client interfaces CCM
• Level 3: Hierarchic• Composite Fractal, ProActive, ...
• Level 4: Distributed + Reconfiguration• Binding, Inclusion, Location ProActive + On going work
Interactions / Communications:Functional Calls: service, event, streamNon-Functional: instantiate, deploy, start/stop, inner/outer, re-bind
This talk
Denis Caromel 75
C3D: distributed-//-collaborative