Presentation is loading. Please wait.

Presentation is loading. Please wait.

Denis Caromel 1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF Strong Programming.

Similar presentations


Presentation on theme: "Denis Caromel 1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF Strong Programming."— Presentation transcript:

1

2 Denis Caromel 1 Denis Caromel, et al. http://ProActive.ObjectWeb.org OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF Strong Programming Model for Strong Weak Mobility: 1.Introduction to ProActive 2.PM: Active Objects + Groups 3.Mobile Agents 4.Strategies for Localization 5.GUI (Video) 6.Applications: Load Balancing

3 Denis Caromel 2 ProActive Parallel Suite (1) Open Source + PROFESSIONAL SUPPORT

4 Denis Caromel 3 ProActive Parallel Suite: GUI

5 Denis Caromel 4 ProActive Parallel Suite: GUI

6 Denis Caromel 5

7 6 ProActive Parallel Suite: Deploy

8 Denis Caromel 7 ProActive Parallel Suite: Deploy

9 Denis Caromel 8 Deploy on Various Kinds of Infrastructures Internet Clusters Parallel Machine Large Equipment Internet Job management for embarrassingly parallel application (e.g. SETI) Internet Servlets EJBsDatabases

10 Denis Caromel 9 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, and Wrapping code: Machines Creation Protocols Lookup and Registry Protocols Protocols and infrastructures: Globus, ssh, rsh, LSF, PBS, SGE, IBM Load Lever, … Web Services,... Data management: File transfer

11 Denis Caromel 10 Scheduler and Resource Manager: User Interface

12 Denis Caromel 11 Scheduler: User Interface

13 Denis Caromel 12 ProActive Parallel Suite: Program

14 Denis Caromel 13 ProActive Parallel Suite: Program

15 Denis Caromel 14 ProActive Parallel Suite: Program

16 Denis Caromel 15 2. Distributed and Parallel Objects ProActive Programming

17 Denis Caromel 16 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 Active Object Future Object Request Req. Queue Thread v1 v2 ag WBN!

18 Denis Caromel 17 ProActive: Inter- to Intra- Synchronization SequentialMultithreadedDistributed Synchronizations, Behavior: not dependent upon the physical location (mapping of activities)

19 Denis Caromel 18 ProActive : Explicit Synchronizations Explicit Synchronization: - ProActive. isAwaited (v); // Test if available -. waitFor (v); // Wait until availab. Vectors of Futures: -. waitForAll (Vector); // Wait All -. waitForAny (Vector); // Get First A ag = newActive (“A”, […], VirtualNode) V v = ag.foo(param);... v.bar(); //Wait-by-necessity

20 Denis Caromel 19 ProActive : Intra-object synchronization Explicit control: Library of service routines: Non-blocking services,... serveOldest (); serveOldest (f); Blocking services, timed, etc. serveOldestBl (); serveOldestTm (ms); Waiting primitives waitARequest(); etc. class BoundedBuffer extends FixedBuffer implements RunActive { // Programming Non FIFO behavior runActivity (ExplicitBody myBody) { while (...) { if (this.isFull()) serveOldest("get"); else if (this.isEmpty()) serveOldest ("put"); else serveOldest (); // Non-active wait waitArequest (); } }} Implicit (declarative) control: library classes e.g. : Blocking Condition Abstraction for concurrency control: doNotServe ("put", "isFull");

21 Denis Caromel 20 ProActive: First-Class Futures SequentialMultithreadedDistributed Synchronizations, Behavior: not dependent upon the physical location (mapping of activities)

22 Denis Caromel 21 Wait-By-Necessity: First Class Futures ba Futures are Global Single-Assignment Variables V= b.bar () c c c.gee (V) v v b

23 Denis Caromel 22 Standard system at Runtime: No Sharing NoC: Network On Chip Proofs of Determinism

24 Denis Caromel 23 Calculus ASP: Asynchronous Sequential Processes

25 Denis Caromel 24 Proofs in GREEK ASP  Confluence and Determinacy Future updates can occur at any time, Mobility does not change behavior

26 Denis Caromel 25 TYPED ASYNCHRONOUS GROUPS

27 Denis Caromel 26 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

28 Denis Caromel 27 Broadcast and Scatter JVM ag cg ag.bar(cg); // broadcast cg ProActive.setScatterGroup(cg) ; ag.bar(cg); // scatter cg c1 c2 c3 c1 c2 c3 c1 c2 c3 c1 c2 c3 c1 c2 c3 c1 c2 c3 s c1 c2 c3 s Broadcast is the default behavior Use a group as parameter, Scattered depends on rankings

29 Denis Caromel 28 Dynamic Dispatch Group JVM ag cg 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);

30 Denis Caromel 29 ProActive Parallel Suite

31 Denis Caromel 30 ProActive Parallel Suite

32 Denis Caromel 31 3. Mobile Agents

33 Denis Caromel 32 ProActive : Migration of active objects Migration is 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)

34 Denis Caromel 33 Principles and optimizations 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)

35 Denis Caromel 34 Principles and optimizations 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)

36 Denis Caromel 35 Principles and optimizations 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

37 Denis Caromel 36 Principles and optimizations 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

38 Denis Caromel 37 Principles and optimizations 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 forwarder

39 Denis Caromel 38 Principles and optimizations 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 forwarder

40 Denis Caromel 39 Principles and optimizations 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 forwarder

41 Denis Caromel 40 Principles and optimizations 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 forwarder

42 Denis Caromel 41 ProActive : API for Mobile Agents Mobile agents (active objects) that communicate Basic primitive: migrateTo public static void migrateTo (String u) // string to specify the node (VM) public static void migrateTo (Object o) // joinning another active object public static void migrateTo (Node n) // ProActive node (VM)

43 Denis Caromel 42 ProActive : API for Mobile Agents Mobile agents (active objects) that communicate // A simple agent class SimpleAgent implements runActive, Serializable { public SimpleAgent () {} public void moveTo (String t){ // Move upon request ProActive.migrateTo (t); } public String whereAreYou (){ // Repplies to queries return ( “ I am at ” + InetAddress.getLocalHost ()); } public runActivity (Body myBody){ while ( … not end of itinerary … ){ res = myFriend.whatDidYouFind () // Query other agents … } myBody.fifoPolicy(); // Serves request, potentially moveTo }

44 Denis Caromel 43 ProActive : API for Mobile Agents Mobile agents that communicate Primitive to automatically execute action upon migration public static void onArrival (String r) // Automatically executes the routine r upon arrival // in a new VM after migration public static void onDeparture (String r) // Automatically executes the routine r upon migration // to a new VM, guaranted safe arrival public static void beforeDeparture (String r) // Automatically executes the routine r before trying a migration // to a new VM

45 Denis Caromel 44 ProActive : API for Mobile Agents Itinerary abstraction Itinerary : VMs to visit specification of an itinerary as a list of (site, method) automatic migration from one to another dynamic itinerary management (start, pause, resume, stop, modification, …) API: myItinerary.add (“machine1’’, “routineX”);... itinerarySetCurrent, itineraryTravel, itineraryStop, itineraryResume, … Still communicating, serving requests: itineraryMigrationFirst (); // Do all migration first, then services, Default behavior itineraryRequestFirst (); // Serving the pending requests upon arrival before migrating again

46 Denis Caromel 45 Host 1Host 2 Host 3 A Home Migration Dynamic itineraries Migration Host 4 foo Host 4 Migration AAAA

47 Denis Caromel 46 4. Localization

48 Denis Caromel 47 Forwarders Migrating object leaves forwarder on current site Forwarder is linked to object on remote site Possibly the mobile object Possibly another forwarder => a forwarding chain is built When receiving message, forwarder sends it to next hop Upon successful communication, a tensioning takes place

49 Denis Caromel 48 Other Strategy: Centralized (location Server) S Host A A Host BHost CHost D S : Source A : Agent reference Server

50 Denis Caromel 49 Centralized Strategy (2) S Host A Host B A Host CHost D S : Source A : Agent reference Migration Server Server Update A migrating object updates the server

51 Denis Caromel 50 Centralized Strategy (3) S Host A Host BHost CHost D S : Source A : Agent reference Message Migration A Server Update Failed A migrating object updates the server

52 Denis Caromel 51 Centralized Strategy (4) S Host A Host BHost CHost D S : Source A : Agent référence A Server Ask for a new reference Response Message But the AO might have moved again in the meantime … just play again. ! The source get a new reference from the server Request

53 Denis Caromel 52 Location Server vs Forwarder Server No fault tolerance if single server Scaling is not straightforward Added work for the mobile object The agent can run away from messages Forwarders Use resources even if not needed The forwarding chain is not fault tolerant An agent can be lost What about performance?

54 Denis Caromel 53 Forwarder vs. Server LAN ( 100 Mb/s ) 1 2 3 4 5 6 7 8 9 10 11 Response time (ms) vs. Communication rate Server better on a LAN

55 Denis Caromel 54 Forwarder vs Server MAN ( 7 Mb/s ) Response time (ms) vs. Communication rate 1 2 3 4 5 6 7 8 9 10 11 Forwarders sometimes better on a MAN

56 Denis Caromel 55 Formal Performance Evaluation of Mobile Agents: Markov Chains Together with Fabrice Huet and Mistral Team Objectives: Formally study the performance of Mobile Agent localization mechanism Investigate various strategies (forwarder, server, etc.) Define adaptative strategies Modeling: Frequency of: –Message from source –Agent migration Time for: –Message transmission –Agent migration

57 Denis Caromel 56 Modeling of Forwarder Strategy No message One In-transit message

58 Denis Caromel 57 Modeling of Server Strategy

59 Denis Caromel 58 TTL-TTU mixed parameterized protocol TTL:Time To Live + Updating Forwarder: After TTL, a forwarder is subject to self destruction Before terminating, it updates server(s) with last agent known location TTU:Time To Update mobile AO: After TTU, AO will inform a localization server(s) of its current location Dual TTU: first of two events: maxMigrationNb: the number of migrations without server update maxTimeOnSite: the time already spent on the current site 5 s. 10 5 s.

60 Denis Caromel 59 TTL-TTU mixed parameterized protocol S Host A A Host BHost CHost D S : Source A : Agent reference Server

61 Denis Caromel 60 TTL-TTU mixed parameterized protocol S Host A Host B A Host CHost D S : Source A : Agent reference Migration Server Server Update F TTL TTU

62 Denis Caromel 61 5. IC2D Interactive Control & Debug for Distribution Eclipse GUI for the GRID

63 Denis Caromel 62 GUI in ProActive Parallel Suite

64 Denis Caromel 63 GUI in ProActive Parallel Suite

65 Denis Caromel 64 Programmer Interface for Monitoring Debugging Optimizing

66 Denis Caromel 65

67 Denis Caromel 66 IC2D

68 Denis Caromel 67 Video 1: IC2D Monitoring, Debugging, Optimizing

69 Denis Caromel 68 Ongoing Work: 3D View in IC2D

70 Denis Caromel 69 6. Example of ProActive Applications

71 Denis Caromel 70 Load Balancing

72 Denis Caromel 71 Load Balancing using Mobility (1)

73 Denis Caromel 72 Load Balancing using Mobility (2) Deals with heterogeneous machines, applications, and network.

74 Denis Caromel 73 Sylvain Cussat-Blanc, Yves Duthen – IRIT TOULOUSE Artificial Life Generation ApplicationJ+1J+5J+6J+7 Version ProActive 251 300 CPUs Initial Application 1 PC56h52 => Crash! ProActive Version 300 CPUs19 minutes Developpement of artificial creatures

75 Denis Caromel 74 Sylvain Cussat-Blanc, Yves Duthen – IRIT TOULOUSE Artificial Life Generation

76 Denis Caromel 75 JECS : 3D Electromagnetism Radar Reflection on Planes

77 Denis Caromel 76 Code Coupling : Vibro Acoustic (courtesy of EADS)

78 Denis Caromel 77 P2P: AO Overlay Network

79 Denis Caromel 78

80 Denis Caromel 79

81 Denis Caromel 80 Summary

82 Denis Caromel 81 Multi-Core to Distributed Concurrency + Mobility + Parallelism Multi-Cores + Distribution

83 Denis Caromel 82 Conclusion: Why does it move ? Thanks to a few key features: Connection-less, RMI+JMS unified Messages rather than long-living interactions

84 Denis Caromel 83 Conclusion: Why does it Communicate and Behave ? 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

85 Denis Caromel 84 Conclusion on Mobile Active Objects Active Objects = a good unit of Computational Mobility Weak Migration OK (even for Load Balancing) Both Actors and Servers Ensuring communications: several strategies to choose from: Location Server Forwarders Mixed: based on TTL-TTU Primitive + Higher-Level abstractions: migrateTo (location) onArrival, onDeparture Itinerary, etc.  Application to Mobile Telecoms: DLP, NH Avatar (NHA), Shared Space for Session Management

86 Denis Caromel 85 Summary-Perspective: Mobility at the Core

87 Denis Caromel 86 ProActive/ GCM Specifications for Components Services SLA QoS Open the way to Soft.+Serv. EU Industry with Clouds & Utilities, DAAS ProActive/ GCM Specifications for Components Services SLA QoS Open the way to Soft.+Serv. EU Industry with Clouds & Utilities, DAAS

88 Denis Caromel 87

89 Denis Caromel 88 Parallel, Distributed, Hierarchical 3. Components Composing

90 Denis Caromel 89 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface ("interfaceName"); V v = a.foo(param); V A Example of component instance JVM Truly Distributed Components IoC: Inversion Of Control (set in XML)

91 Denis Caromel 90 GCM: Grid Component Model GCM Being defined in the NoE CoreGRID (42 institutions) Open Source ObjectWeb ProActive implements a preliminary version of GCM Service Oriented: NESSI relation GridCOMP takes: GCM as a first specification, ProActive as a starting point, and Open Source reference implementation. The vision: GCM to be the IT Service GSM

92 Denis Caromel 91 GridCOMP Partners

93 GCM Scopes and Objectives: Grid Codes that Compose and Deploy No programming, No Scripting, … No Pain Innovation: Abstract Deployment Composite Components Multicast and GatherCast MultiCast GatherCast

94 Denis Caromel 93 Pies for Analysis and Optimization

95 Denis Caromel 94 Pies for Analysis and Optimization

96 Denis Caromel 95 With Summary Report

97 Denis Caromel 96 Ongoing Work: Integration with JMX JConsole: Monitoring Heap, Threads, CPU Over 60 Hours


Download ppt "Denis Caromel 1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF Strong Programming."

Similar presentations


Ads by Google