1 / 36

Ludovic Henrio Paris, 2006-06-08

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.

owen
Download Presentation

Ludovic Henrio Paris, 2006-06-08

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Open Source Middleware for the Grid Programming Wrapping Composing Deploying Ludovic Henrio Paris, 2006-06-08

  2. Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion

  3. 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)

  4. 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)

  5. 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

  6. 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);

  7. 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

  8. 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

  9. 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

  10. 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

  11. Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion

  12. 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

  13. 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

  14. 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

  15. Same application, many deployments Internet Local Grid Distributed Grids One Host

  16. 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

  17. 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

  18. 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, …

  19. 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

  20. Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion

  21. IC2D:Interactive Control & Debug for Distribution • Graphical Visualisation • Textual Visualisation • Control and Monitoring • Job Management

  22. IC2D: Application Monitoring • Main Features: • - Hosts, JVM, • - Nodes • - Active Objects • - Topology • - Migration

  23. Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion

  24. Controller Content ProActive Components

  25. Table of Contents • Distributed Objects • Deployment • Monitoring • Composing • Conclusion

  26. 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)

  27. 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

  28. 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

  29. a b foo f2 f1 foo g d f3 Structure Active(a) ASP

  30. 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

  31. 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, …

  32. 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>

  33. Perspective for Components - PSE Graphical Composition, Monitoring, Migration

  34. Perspective for Components - PSE Graphical Composition, Monitoring, Migration

More Related