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

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

Embed Size (px)

Citation preview

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

1

Update Strategies for First Class Futures

Khan Muhammad, Ludovic HenrioINRIA, Univ. Nice Sophia Antipolis,CNRS

Page 2: 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

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

3

Table of Contents

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

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

4

Active Objects (Overview)

A

Message Queue

Activity thread

Membrane (Body)

Pending Requests

Passive Objects

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

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

JVM

Active Object

Future Object Request

Req. Queue

Thread

v1v2 ag

WBN!

Wait-By-Necessity is a Dataflow

Synchronization

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

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

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

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

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

8

Table of Contents

Background & Related Work

Future Update Strategies Semi-formal notation for modeling strategies Cost analysis Experimental evaluation Conclusion & Future directions

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

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

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

10

delta.send(result)

Future Update Strategies: No partial replies and request

Cannot Pass Future references between ActiveObjects

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

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

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

12

delta.send(result)result.bar()result.bar()

Future Update Strategies: Forward-based

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

13

delta.send(result)result.bar()result.bar()

Future Update Strategies: Forward-based

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

14

delta.send(result)result.bar()result.bar()

Future Update Strategies: Forward-based

Future updates follow the same path as future references

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

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

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

16

delta.send(result)result.bar()result.bar()

Future Update Strategies: Message-based

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

17

delta.send(result)result.bar()result.bar()

Future Update Strategies: Message-based

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

18

delta.send(result)result.bar()result.bar()

Future Update Strategies: Message-based

Fu

ture

Reg

istr

atio

nM

essa

ges

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

19

Future Update Strategies: Message-based(2)

gamma.send(param)

result = beta.get()delta.send(result)

Result.bar()Additional Registration

Messages required

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

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

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

21

Future Update Strategies: lazy(2)

gamma.send(param)

result = beta.get()delta.send(result)

Result.bar()

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

22

Future Update Strategies: lazy(2)

gamma.send(param)

result = beta.get()delta.send(result)

Result.bar()

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

23

delta.send(result)result.bar()result.bar()

Future Update Strategies: Lazy Future Updates

“on demand” future update

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

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

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

25

Table of Contents

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

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

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)

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

27

Eager Message-based Strategy (semi-formal notation)

Compromise between “readability” and precision

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

28

Table of Contents

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

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

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

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

30

Experiment Result (1)

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

31

Experiment Results (2)

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

32

Table of Contents

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

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

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

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

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 !

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

35

Experimental Setting

f f

f

Pipe of varying length

Trees of different heights

f f

f

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

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)

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

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

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

38

delta.send(result)

Wait-by-necessity

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

39

delta.send(result)result.bar()result.bar()

Wait-by-necessity

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

40

delta.send(result)result.bar()result.bar()

Wait-by-necessity

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

41

Wait-by-necessity

result.bar()Futures updates can occur at any time

Futures updates can occur at any time