360 likes | 473 Views
An Open Source Middleware for the Grid. Programming Wrapping Composing Deploying. Ludovic Henrio Paris, 2006-06-08. Table of Contents. Distributed Objects Deployment Monitoring Composing Conclusion. ProActive : A Java API + Tools for Parallel, Distributed Computing.
E N D
An Open Source Middleware for the Grid Programming Wrapping Composing Deploying Ludovic Henrio Paris, 2006-06-08
Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion
ProActive:A Java API + Tools for Parallel, Distributed Computing A uniform framework: An Active Object pattern A formal model behind: Determinism (POPL’04) • Programming Model (Active Objects): • Asynchronous Remote Invocations, Wait-By-Necessity • Groups, Mobility, Components, Security, Fault-tolerance, Load balancing • Environment: • XML Deployment Descriptors, File Transfers • Interfaced with: rsh, ssh, LSF, PBS, Globus, Jini, SUN Grid Engine • Graphical Visualization and monitoring: IC2D • In thewww. ObjectWeb .org Consortium • (Open Source LGPL)
copy! Model • Activity : coarse-grained structuring entities (subsystems) • possibly owns many passive objects • has exactly one thread, and one active object. • No shared passive object -- Parameters are passed by deep-copy • Asynchronous Communication between active objects • Futures (promised replies) and wait-by-necessity. JVM distant.foo(object)
An object created with A a = new A (obj, 7); can be turned into an active and remote object: Object-based: a = (A)ProActive.turnActive (a, node); Instantiation-based: A a = (A)ProActive.newActive(«A», params, node); The “node” is the AO container. Remaining of the code unchanged “Transparency” Creating active objects
A call on an active object consists in 2 steps A request : name of the method, parameters… A Reply : the result of the method call A request returns a Future object which is a placeholder for the result The callee will update the Future when the result is available The caller can continue its execution event if the Future has not been updated Future: result of a method call Reply future = distant.query (parameters);
JVM A A WBN! Wait-by-necessity A ag =newActive (“A”, […], VirtualNode) V v1 = ag.foo (param); V v2 = ag.bar (param); ... v1.bar(); //Wait-By-Necessity JVM ag v2 v1 V Wait-By-Necessity is a Dataflow Synchronization Java Object Active Object Req. Queue Future Object Proxy Thread Request
Collective Communications: Groups • Manipulate groups of Active Objects, in a simple and typed manner: Typed and polymorphic Groups of active and remote objects Dynamic generation of group of results Language centric, Dot notation • Be able to express high-level collective communications (like in MPI): • broadcast, • scatter, gather, • all to all
A V Creating AO and Groups A ag = newActiveGroup (“A”, […], VirtualNode) V v = ag.foo(param); ... v.bar(); //Wait-by-necessity JVM Typed groups, and Asynchrony are crucial for Components and GRID Typed Group Java or Active Object
Weak Migration of active objects • Migrationis initiated by the active object itself through a primitive: migrateTo • Can be initiated from outside through any public method • The active object migrates with: • all pending requests • all its passive objects • all its future objects • Automatic and transparent forwarding of: • requests (remote references remain valid) • replies (its previous queries will be fullfilled) 2 Techniques : Forwarders or Centralized server
Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion
Large Equipment Internet Internet Internet Servlets EJBs Databases Job management for embarrassingly parallel application (e.g. SETI) Parallel Machine Clusters How to deploy on the multiple Grids enterprise intranet scientific edge computing
Abstract Deployment Model • Problems: • Difficulties and lack of flexibility in deployment • Avoid scripting for: configuration, getting nodes, connecting, etc. • A key principle: Virtual Node (VN) in XML deployment file • 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
XML Deployment files • Virtual Node (VN): • Identified as a string name • Used in program source • Configured (mapped) in the XML descriptor file --> Nodes • Operations specified in descriptors: • Mapping of VN to JVMs (leads to Node in a JVM on Host) • Register or Lookup VNs • Create or Acquire JVMs • Security, Fault-tolerance Program Source Descriptor (RunTime) |------------------------------------------- ---------------------------------------------| Activities (AO)--> VN VN --> JVMs --> Hosts Runtime structured entities: 1 VN --> n Nodes in m JVMs on k Hosts
Same application, many deployments Internet Local Grid Distributed Grids One Host
Security: Key Features • ProActive Security Features • Authentication of users and applications (PKI X 509 certificates) • Authentication, Integrity and Confidentiality of communication • In XML deployment files, Not In Source • Mobility Aware • Dynamically negotiated policies • Easily adaptable to the deployment
Pure P2P: Definition • Only PEERs, no above everything, • top level, server(s) • Every peer is, somehow, also a server • No master … No slave ! • System gets organized dynamically, without static configuration • Coherent, desired behavior, dynamically emerges
Peer-to-Peer ComputingModel & Infrastructure Inspired from Gnutella Use Sparse CPU Cycles from Desktop Workstations/clusters • Dynamic Computational Peer-to-Peer (P2P): • Intranet & Internet • Propose a High Level Model • Dynamic JVMs Network (computation nodes) [infrastructure] • P2P Programming Model for Branch and Bound (B&B) problems • ProActive Context: no modification of Java language, of JVMs, …
Fault-tolerance in ProActive • Rollback-Recovery fault-tolerance • After a failure, revert the system state back to some earlier and correct version • Based on periodical checkpoints of the active objects • Stored on a stable server • Two protocols are implemented • Communication Induced Checkpointing (CIC) • Low failure free overhead • Slow recovery • Pessimistic Message Logging (PML) • Higher failure free overhead • Fast recovery • Fault-tolerance is set in deployment descriptors • Fault-tolerance service attached to virtual nodes • No source code alteration • Transparent and non intrusive
Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion
IC2D:Interactive Control & Debug for Distribution • Graphical Visualisation • Textual Visualisation • Control and Monitoring • Job Management
IC2D: Application Monitoring • Main Features: • - Hosts, JVM, • - Nodes • - Active Objects • - Topology • - Migration
Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion
Controller Content ProActive Components
Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion
Execution Time on a cluster 900 800 21*21*21 700 31*31*31 Mesh Size 600 43*43*43 500 55*55*55 temps (secondes) 81*81*81 400 97*97*97 300 113*113*113 200 121*121*121 100 0 0 10 20 30 40 50 60 70 nombre de processeurs Appli: JEM 3D :Java 3D Electromagnetismtogether withSaid El Kasmi, Stéphane Lanteri (caiman) • Maxwell 3D equation solver, Finite Volume Method (FVM) • Pre-existing Fortran MPI version: EM3D(CAIMAN team @ INRIA)
ProActive and (De Facto) Standards • RMI, RMI-Ibis, Jini, HTTP • rsh, ssh, scp • Globus GTx, sshGSI, Unicore, EGEE gLite • LSF, PBS, OAR, Sun Grid Engine • Fractal Components • Web Services • OSGi
Available in Open Sourcehttp://ProActive.ObjectWeb.org That’s it! • A Strong Programming Model + A Strong Deployment • Presented features: • Active Objects, XML descriptors, Security, P2P, Fault-tolerance • Features not detailed: • OO SPMD, Web Services, load balancing, legacy wrapping, and more… • Perspectives: • Better Error Management (Exceptions, …) • Behavior Specification (Model Checking) • Tools for Distributed Programming: Code Analysis, Transformation, Integrated IDE
a b foo f2 f1 foo g d f3 Structure Active(a) ASP
Openness • OpenSource • Easy to extend • Add new Deployment Protocols • Add new File Transfer Protocols • Not so hard to add new Transport (one could imagine hardware specific implementations) • Add Checkpointing Protocols • Add localization strategies for mobility
ASP: Summary and Results • An Asynchronous Object Calculus: • Structured asynchronous activities • Structured communications with futures • Data-driven synchronization • ASP Confluence and Determinacy • Future updates can occur at any time • Execution characterized by the order of request senders • Determinacy of programs communicatingover trees, …
Composition View Content Interactive Composition in IC2D Instead 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>
Perspective for Components - PSE Graphical Composition, Monitoring, Migration
Perspective for Components - PSE Graphical Composition, Monitoring, Migration