1 Update Strategies for First Class Futures Khan Muhammad, Ludovic Henrio INRIA, Univ. Nice Sophia Antipolis,CNRS.

Slides:



Advertisements
Similar presentations
Agent agent Outline of Presentation Introduction: Inter-Agent Message Passing ARP: Design and Analysis Generalization: A Generic Framework Conclusion.
Advertisements

System Area Network Abhiram Shandilya 12/06/01. Overview Introduction to System Area Networks SAN Design and Examples SAN Applications.
Christian Delbe1 Christian Delbé OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis November Automatic Fault Tolerance in ProActive.
Efficient Collective Operations using Remote Memory Operations on VIA-Based Clusters Rinku Gupta Dell Computers Dhabaleswar Panda.
Relaxed Consistency Models. Outline Lazy Release Consistency TreadMarks DSM system.
Routing in a Parallel Computer. A network of processors is represented by graph G=(V,E), where |V| = N. Each processor has unique ID between 1 and N.
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
Requirements on the Execution of Kahn Process Networks Marc Geilen and Twan Basten 11 April 2003 /e.
1 Ludovic Henrio Paris, An Open Source Middleware for the Grid Programming Wrapping Composing Deploying.
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
Secure Multicast Xun Kang. Content Why need secure Multicast? Secure Group Communications Using Key Graphs Batch Update of Key Trees Reliable Group Rekeying.
CSCI 8150 Advanced Computer Architecture Hwang, Chapter 2 Program and Network Properties 2.3 Program Flow Mechanisms.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
CS 582 / CMPE 481 Distributed Systems Replication.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
3.5 Interprocess Communication
1 Lecture 5: Directory Protocols Topics: directory-based cache coherence implementations.
1 Lecture 3: Directory-Based Coherence Basic operations, memory-based and cache-based directories.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
PRASHANTHI NARAYAN NETTEM.
Design and Implementation of a Single System Image Operating System for High Performance Computing on Clusters Christine MORIN PARIS project-team, IRISA/INRIA.
1 The Google File System Reporter: You-Wei Zhang.
DEMIGUISE STORAGE An Anonymous File Storage System VIJAY KUMAR RAVI PRAGATHI SEGIREDDY COMP 512.
Asynchronous Components Asynchronous communications: from calculi to distributed components.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
1 Adaptive QoS Framework for Wireless Sensor Networks Lucy He Honeywell Technology & Solutions Lab No. 430 Guo Li Bin Road, Pudong New Area, Shanghai,
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
Advanced / Other Programming Models Sathish Vadhiyar.
An Implementation and Performance Evaluation of Language with Fine-Grain Thread Creation on Shared Memory Parallel Computer Yoshihiro Oyama, Kenjiro Taura,
Workflow Early Start Pattern and Future's Update Strategies in ProActive Environment E. Zimeo, N. Ranaldo, G. Tretola University of Sannio - Italy.
Swapping to Remote Memory over InfiniBand: An Approach using a High Performance Network Block Device Shuang LiangRanjit NoronhaDhabaleswar K. Panda IEEE.
7/26/ Design and Implementation of a Simple Totally-Ordered Reliable Multicast Protocol in Java.
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
Computer Networks with Internet Technology William Stallings
MapReduce and GFS. Introduction r To understand Google’s file system let us look at the sort of processing that needs to be done r We will look at MapReduce.
Rushing Attacks and Defense in Wireless Ad Hoc Network Routing Protocols ► Acts as denial of service by disrupting the flow of data between a source and.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
1 Romain Quilici ObjectWeb Architecture meeting July 2nd 2003 ProActive Architecture of an Open Middleware for the Grid.
Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe.
BZUPAGES.COM Presentation On SWITCHING TECHNIQUE Presented To; Sir Taimoor Presented By; Beenish Jahangir 07_04 Uzma Noreen 07_08 Tayyaba Jahangir 07_33.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
DHT-based unicast for mobile ad hoc networks Thomas Zahn, Jochen Schiller Institute of Computer Science Freie Universitat Berlin 報告 : 羅世豪.
DISTRIBUTED COMPUTING
Lazy Maintenance of Materialized Views Jingren Zhou, Microsoft Research, USA Paul Larson, Microsoft Research, USA Hicham G. Elmongui, Purdue University,
A visualisation and debugging tool for multi-active objects Ludovic Henrio, Justine Rochas LAMHA, Nov 2015.
Transparent First-class Futures and Distributed Components Introduction: components, futures, and challenges Statically Representing Futures An Example.
Denis Caromel1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF October
Distributed Components and Futures: Models and Challenges A Distributed Component Model Distributed Reconfiguration Calculi for Components and Futures.
A Theory of Distributed Objects Toward a Foundation for Component Grid Platforms Ludovic HENRIO l A Theory of Distributed Objects l Components l Perspectives.
Concurrent Object-Oriented Programming Languages Chris Tomlinson Mark Scheevel.
Using Ant Agents to Combine Reactive and Proactive strategies for Routing in Mobile Ad Hoc Networks Fredrick Ducatelle, Gianni di caro, and Luca Maria.
Mastère RSD - TC4 2005/20061 Distributed JAVA Aims and Principles The ProActive library Models of behaviours Generation of finite (parameterized) models.
1 Romain Quilici OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF July 2nd 2003 ProActive Architecture.
Barnes Hut – A Broad Review Abhinav S Bhatele The 27th day of April, 2006.
Parallel and Distributed Simulation Deadlock Detection & Recovery.
2. CALCULUS: A S P. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes.
ZOOKEEPER. CONTENTS ZooKeeper Overview ZooKeeper Basics ZooKeeper Architecture Getting Started with ZooKeeper.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.
Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.
Operating Systems (CS 340 D)
Wireless Mesh Networks
Programming Models for Distributed Application
Hardware Description Languages
Data-Centric Networking
ProActive Architecture of an Open Middleware for the Grid
Vinay Singh Graduate school of Software Dongseo University
#01 Client/Server Computing
Multiprocessors and Multi-computers
Presentation transcript:

1 Update Strategies for First Class Futures Khan Muhammad, Ludovic Henrio INRIA, Univ. Nice Sophia Antipolis,CNRS

2 Introduction / Contributions Semi-formal event-like notation  Compromise between easy to read and precision Cost analysis of the strategies  Cost in terms of message exchanges Experimental Evaluation  Verifying the results of the cost analysis Which is the best future update strategy? Goal: Analysis of future update strategies

3 Table of Contents Background & Related Work Future Update Strategies Semi-formal notation for modeling strategies Cost analysis & Experimental evaluation Conclusion & Future directions

4 Active Objects (Overview) A Message Queue Activity thread Membrane (Body) Pending Requests Passive Objects

5 A Active objects,Futures & WBN Proxy Java Object A ag = newActive (“A”, […], VirtualNode) V v1 = ag.foo (param); V v2 = ag.bar (param);... v1.bar(); //Wait-By-Necessity V JVM A Active Object Future Object Request Req. Queue Thread v1 v2 ag WBN! Wait-By-Necessity is a Dataflow Synchronization

6 Context Active Objects  Single Activity Thread: no shared memory  Message Queue Futures  Creation: Explicit/implicit  Access: Explicit vs transparent  First class futures: transmit futures between AO »Increases parallelism  Wait by necessity (Strict operations) »Data flow synchronization

7 Related Work Lambda Calculus, Multi-Lisp, ABCL/f  Not first class futures Creol  Explicit future Creation  Explicit access Ambient Talk  Future access is asynchronous  No synchronization

8 Table of Contents Background & Related Work Future Update Strategies Semi-formal notation for modeling strategies Cost analysis Experimental evaluation Conclusion & Future directions

9 Future update strategies Can be divided in two categories  Eager  Future updated as soon as result is available  Lazy  On demand / “need to know” future update Eager Strategies  Eager forward-based  Eager message-based Lazy  Lazy message-based No Partial Replies & requests  No First-class futures

10 delta.send( result )    Future Update Strategies: No partial replies and request Cannot Pass Future references between ActiveObjects

11    Future Update Strategies: First Class Futures  gamma.send(param) result = beta.get() delta.send(result) Result.bar() Only operations that manipulate future value are blocking

12 delta.send(result)result.bar()    Future Update Strategies: Forward-based 

13 delta.send(result)result.bar()    Future Update Strategies: Forward-based 

14 delta.send(result)result.bar()    Future Update Strategies: Forward-based  Future updates follow the same path as future references

15 Future Update Strategies: Forward-based (summary) All futures references are eventually updated Future update starts as soon as value is computed Each AO is responsible for updating futures it has forwarded Future updates follow the same path as futures  Future value may need to pass through “n” intermediate hops Future value is serialized and de-serialized at each intermediate node Once the value is updated, no need to store it further

16 delta.send(result)result.bar()    Future Update Strategies: Message-based 

17 delta.send(result)result.bar()    Future Update Strategies: Message-based 

18 delta.send(result)result.bar()    Future Update Strategies: Message-based  Future Registration Messages

19    Future Update Strategies: Message-based(2)  gamma.send(param) result = beta.get() delta.send(result) Result.bar() Additional Registration Messages required

20 Future Update Strategies: Message-based (Summary) Centralized future updates  All updates are performed by “Home” node Future update starts as soon as value is computed Additional “future registration” messages needed One-to-many communication to avoid multiple serializations Computed results are stored until all futures have been updated

21    Future Update Strategies: lazy(2)  gamma.send(param) result = beta.get() delta.send(result) Result.bar()

22    Future Update Strategies: lazy(2)  gamma.send(param) result = beta.get() delta.send(result) Result.bar()

23 delta.send(result)result.bar()    Future Update Strategies: Lazy Future Updates  “on demand” future update

24 Future Update Strategies: Lazy Strategy (Summary) Centralized future update Least number of messages exchanged (unless Worst case) On demand registration and update Additional delay Good when only some nodes need the future value  No need to update intermediate nodes

25 Table of Contents Background & Related Work Future Update Strategies Semi-formal notation for modeling strategies Cost analysis & Experimental evaluation Conclusion & Future directions

26 Semi-formal notation for strategies Modeled as combination of operations & events  Operations  Register future (Reg)  Locally update future with value (Update)  Clear future from list (Clear)  Send future value (SendValue)  Events  Create future (Create)  Send future reference (SendRef)  Future Computed (FutureComputed)  Wait by necessity (Wait)

27 Eager Message-based Strategy (semi-formal notation) Compromise between “readability” and precision

28 Table of Contents Background & Related Work Future Update Strategies Semi-formal notation for modeling strategies Cost analysis & Experimental evaluation Conclusion & Future directions

29 Comparison/Cost Analysis “Computation time” is not taken into account (application dependent) Only “time to update future” Assumes that result has been computed when the registration request is received Simple model to allow reasoning about strategy selection at abstract lvl

30 Experiment Result (1)

31 Experiment Results (2)

32 Table of Contents Background & Related Work Future Update Strategies Semi-formal notation for modeling strategies Cost analysis & Experimental evaluation Conclusion & Future directions

33 Conclusion & Future directions (1) Selection of a strategy depends on application nature (and configuration) Eager forward-based:  Most nodes actually require future value  Small number of intermediate nodes  Size of transferred data is “not huge” Message-based:  Most nodes actually require future value  No network constraints  Constant future update time needed (single hop) Lazy message-based:  Only few nodes actually require future value  Future value is “too large”  Long term storage of values is not a concern

34 Conclusion & Future directions (2) Garbage Collection of computed Futures for message- based strategies Protocol for “cancel future update” for objects not interested in future value (a un-register message) Canceling a request Migration: for message-based strategies Merci !

35 Experimental Setting ff f Pipe of varying length Trees of different heights ff f

36 Experimental Setting Exp (1) Tree configuration (varying height & degree) Fixed future size of (20 MB) Tree of 30 nodes Only leaf nodes (8 max) a perform strict operation Cluster of 10 physical Nodes (university of sannio) Exp (2) Pipe of varying length Only last node in pipe makes a strict operation Fixed future size (20 MB)

37 Current implementation status Currently a prototype implementation with university of sannio  Does not fit well with current AC mechanism  Does not reuse ProActive’s AC mechanisms  Functionality is spread over different classes -> Need to be brought in-line with the AC mechanism of ProActive.  No garbage collection for computed results +registration requests  Home-based strategies are implemented using a “reference to home” (body) in FutureProxy (will cause problems for migration)  Additional class “RequestForFuture.java added to implement registration  Implementing a multi-threaded future update mechanism with unique-serialization

38 delta.send(result)    Wait-by-necessity

39 delta.send(result) result.bar()    Wait-by-necessity

40 delta.send(result) result.bar()    Wait-by-necessity

41    Wait-by-necessity result.bar() Futures updates can occur at any time Futures updates can occur at any time