Denis Caromel Scientific Coordinator [email protected] Beijing, October 2007
Denis Caromel 1 [email protected] A Strong Programming Model Bridging Distributed and...
-
Upload
caroline-gordon -
Category
Documents
-
view
217 -
download
0
Transcript of Denis Caromel 1 [email protected] A Strong Programming Model Bridging Distributed and...
Denis Caromel1
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
Denis Caromel2
1. Background and Team at INRIA
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
Denis Caromel4
Startup Company Born of INRIACo-developing, Providing support for Open Source ProActive Parallel Suite
Worldwide Customers (EU, Boston USA, etc.)
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)
Denis Caromel6
ProActive Contributors
Denis Caromel7
ProActive Parallel Suite:
Architecture
Denis Caromel8
Denis Caromel9
ProActive Parallel Suite
9
Physical InfrastructurePhysical Infrastructure
Denis Caromel10
ProActive Parallel Suite
10
Denis Caromel11
2. Programming Modelsfor
Parallel & Distributed
Denis Caromel12
ProActive Parallel Suite
Denis Caromel13
ProActive Parallel Suite
Denis Caromel14 14
Distributed and Parallel
Active Objects
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!
Denis Caromel16 16
First-Class Futures
Update
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
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
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
Denis Caromel20 20
Standard system at Runtime:No Sharing
NoC: Network On ChipProofs of Determinism
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, …
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
Denis Caromel23 23
TYPED
ASYNCHRONOUS
GROUPS
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
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
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);
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);
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
Denis Caromel29
Abstractions for Parallelism
The right Tool to execute the Task
Denis Caromel30 30
Object-Oriented SPMD
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
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.
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
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
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
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
Denis Caromel37
Communication IntensiveCG Kernel (Conjugate Gradient)
Comparable Performances
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
Denis Caromel39
Communication IntensiveMG Kernel (Multi Grid)
Pb. With high-ratecommunications
2D 3D matrixaccess
Denis Caromel40
Computation IntensiveEP Kernel (Embarrassingly Parallel)
Random numbers
generation
Almost no
communications
This is Java!!!
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
Denis Caromel42 42
Parallel Components
Denis Caromel43
GridCOMP Partners
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)
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
Denis Caromel46
Optimizing MxN Operations
2+ composites can be involved in the Gather-
multicast
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
Denis Caromel48
Skeleton
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
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;}
Denis Caromel51 51
3. Optimizing
Denis Caromel52
Programming & OptimizingMonitoring, Debugging, Optimizing
Denis Caromel53
Denis Caromel54
Optimizing User Interface
Denis Caromel55
IC2D
Denis Caromel56
ChartIt
Denis Caromel57
Pies for Analysis and Optimization
Denis Caromel58
Video 1: IC2D OptimizingMonitoring, Debugging, Optimizing
Denis Caromel59
Denis Caromel60 60
4. Deploying &
Scheduling
Denis Caromel61
Denis Caromel62
Deploying
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
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 …
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
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
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
Denis Caromel68
Resource Virtualization
68
VN1
VN2
GCM XMLDeployment Descriptor
node
node
HostJVM
node
JVM
Host
node
JVM
2009
Denis Caromel69
Virtualization resources
69
VN1
VN2
node
node
HostJVM
node
JVM
Host
node
JVM
2009
Denis Caromel70
Multiple Deployments
70
One Host Local Grid Distributed Grids
Internet
2009
Denis Caromel71
SchedulingMode
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
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
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
Denis Caromel75
Scheduler: User Interface
Denis Caromel76
Scheduler: User Interface
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
Denis Caromel78
Denis Caromel79
Summary
Denis Caromel80
Current Open Source Tools:
Acceleration Toolkit :Concurrency
+Parallelism +Distribution
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
Denis Caromel82
Conclusion: Why does it scale?
Thanks to a few key features:
Connection-less, RMI+JMS unified
Messages rather than long-living interactions
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
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!
Denis Caromel85
Denis Caromel86
Extra Material
Grid + SOA
J2EE + Grid
Amazon EC2 ProActive Image and Deployment
Denis Caromel87
Perspective:
SOA + Grid
Denis Caromel88
SOA Integration:Web Services, BPEL Workflow
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
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)
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
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
Denis Caromel93
Video
SOA Integration:Web Services, BPEL Workflow
Denis Caromel94
6. J2EE IntegrationFlorin Alexandru Bratu
OASIS Team - INRIA
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
Denis Caromel96
ProActive – J2EE Integration (1)
1. Delegating heavy computations outsides J2EE Applications
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
Integration(2)
Denis Caromel99
Grids & Clouds:
Amazon EC2 Deployment
Denis Caromel100
Big Picture + Clouds
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
Denis Caromel102
ProActive Deployment onAmazon EC2
Video
Denis Caromel103
Denis Caromel104
P2P:Programming
Modelson
Overlay Networks
Denis Caromel105
Denis Caromel106