76
2. CALCULUS: A S P

2. CALCULUS:

  • Upload
    corine

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

2. CALCULUS:. A S P. THEORY. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph. A Calculus: ASP: Asynchronous Sequential Processes Based on Sigma-Calculus ( Abadi-Cardelli ) Formal Proofs of determinism - PowerPoint PPT Presentation

Citation preview

Page 1: 2. CALCULUS:

2. CALCULUS:

A S P

Page 2: 2. CALCULUS:

A Theory of Distributed ObjectsD. Caromel, L. Henrio,

Springer 2005, Monograph

A Calculus:

ASP: Asynchronous Sequential Processes Based on Sigma-Calculus (Abadi-Cardelli) Formal Proofs of determinism Releases a few important implementation constraints

THEORY

Page 3: 2. CALCULUS:

-calculus

Page 4: 2. CALCULUS:

Why calculi?Prove properties on languages, typing

Programs (equivalence), execution strategies, …

Why calculi?Prove properties on languages, typing

Programs (equivalence), execution strategies, …

Page 5: 2. CALCULUS:

Review (informal classification of calculi)

Page 6: 2. CALCULUS:

Asynchronous and Deterministic Objects

ASP: Asynchronous Sequential Processes

Distributed objects

Asynchronous method calls ( towards components)

Futures and Wait-by-necessity

Determinism properties

A Theory of Distributed Objects

Page 7: 2. CALCULUS:

ASP Syntax : Source Terms Imperative-calculus

ASP parallelism primitives

1- ASP

Page 8: 2. CALCULUS:

Local

Creating anActivity

Sending aRequest

Sending aReply

Service

1- ASP

Page 9: 2. CALCULUS:

f3

f1

Structure

1- ASP

foo

foo

f2

Active(a)

Page 10: 2. CALCULUS:

foo

beta.foo(b)

result=beta.foo(b)

Sending Requests ( REQUEST )

1- ASP

Page 11: 2. CALCULUS:

foo

beta.foo(b)result

Sending Requests ( REQUEST )

1- ASP

result=beta.foo(b)

Page 12: 2. CALCULUS:

delta.send(result)

Wait-by-necessity

1- ASP

Page 13: 2. CALCULUS:

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

Wait-by-necessity

1- ASP

Page 14: 2. CALCULUS:

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

Wait-by-necessity

1- ASP

Page 15: 2. CALCULUS:

Wait-by-necessity

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

Futures updates can occur at any time

1- ASP

Page 16: 2. CALCULUS:

Confluence and Determinacy

Page 17: 2. CALCULUS:

Store Partitioning

Page 18: 2. CALCULUS:

Deterministic Object Networks

{foo,bar} , {foo,gee}

delta.gee(a)

gee

delta.bar(a)bar

{bar,gee} , {foo}

gee barbar gee

DON(P):

Page 19: 2. CALCULUS:

ASP theory: Summary and Results

ASP Confluence and Determinacy Proved Properties:

Future updates can occur at any time, in any order

Asynchronous FIFO point-to-point is enough for Requests

Execution characterized by the order of request senders

Applications:

Determinacy of programs based on a dynamic property: DON

Determinacy of programs communicating over Trees,

SDON, and Deterministic Components, …

Page 20: 2. CALCULUS:

Static DON

{foo,bar} , {gee}

{foo,bar} , {gee}

{gee}, {f,g}

{bar} , {gee}

{foo,bar} , {gee}

foo

bar

f{foo}, {bar}

{gee}, {f,g}

{f,g}{gee}, {f,g}f

g

gee

f

g

{gee}, {f,g}

g

The difficulty is to staticallyapproximate activities, method calls

and potential services

The difficulty is to staticallyapproximate activities, method calls

and potential services

Page 21: 2. CALCULUS:

From 2. to 3.:CALCLUS to COMPONENTS

Components in ASP

Objective: Deterministic Components

Page 22: 2. CALCULUS:

Content

Controller

Using the Fractal model:Hierarchical Component

Defined by E. Bruneton, T. Coupaye, J.B. Stefani, INRIA & FT

Page 23: 2. CALCULUS:

Content

Controller

Hierarchical model : Composites encapsulate Primitives,

Primitives encapsulate Code

Page 24: 2. CALCULUS:

Content

Controller

Binding = in an external file (XML ADL), Not in programs

Page 25: 2. CALCULUS:

Content

Controller

Binding = in an external file (XML ADL), Not in programs

Page 26: 2. CALCULUS:

Context and Challenge

- Asynchronous,

- Distributed components, yet

Deterministic Components

Page 27: 2. CALCULUS:

Primitive Components

A PrimitiveComponent

Server InterfacesClient Interfaces

Requests

Method names

Fields

Requests

Page 28: 2. CALCULUS:

Hierarchical Composition

Composite component

Primitive component

PC

PC PCCC

Inp

ut

inte

rfac

esO

utp

ut in

terfaces

Asynchronousmethod calls

Exp

ort

Exp

ort

Binding

Page 29: 2. CALCULUS:

Invalid composition

Interface exported twice Output plugged twice

Except with group communication …

s is a functionC is a function

is a function

Page 30: 2. CALCULUS:

Valid Compositions

Non-confluent

Non-confluent

Non-confluent

Inp

ut

inte

rfac

esO

utp

ut in

terfaces

Page 31: 2. CALCULUS:

Valid CompositionsIn

pu

t in

terf

aces

Ou

tpu

t interfaces

Page 32: 2. CALCULUS:

Semantics: “Static” Translation to ASPIn

pu

t in

terf

aces

Ou

tpu

t interfaces

Page 33: 2. CALCULUS:

Semantics: “Dynamic” Translation to ASPIn

pu

t in

terf

aces

Ou

tpu

t interfaces

Page 34: 2. CALCULUS:

Deterministic Primitive Component

Requirement on potential services:

Each Potential service isentirely included in a single SI

A PrimitiveComponent

Serve(M)

Page 35: 2. CALCULUS:

Deterministic Composition (SDON)

Non-confluent

Non-confluent

Non-confluent

Each SI is only used once, either bound or exported:

Page 36: 2. CALCULUS:

Component Model: Summary and Results

A definition of components Coarse grain components (activities) Convenient abstraction for distribution and Concurrency:

Primitive components as an abstraction for activities Structured asynchronous communications

Requests = Asynchronous method calls Well defined interfaces: served methods Semantics as translations to ASP First class futures inherited from ASP

Specification of deterministic components: Deterministic primitive components Deterministic composition of components

Components provide a convenient abstraction

for statically ensuring determinism

Components provide a convenient abstraction

for statically ensuring determinism

Page 37: 2. CALCULUS:

Towards Parallel and Deterministic Components

Groups in ASP

Page 38: 2. CALCULUS:

Group.foo()

Groups of Active Objects

3 – More FeaturesPart IV

Page 39: 2. CALCULUS:

Group.foo()

Groups of Active Objects

foo

foo

foo

result

3 – More FeaturesPart IV

Page 40: 2. CALCULUS:

Group.foo()

Groups of Active Objects

foo

foo

foo

Group.bar()

bar

bar

bar

3 – More FeaturesPart IV

Page 41: 2. CALCULUS:

Group.foo()

Groups of Active Objects: Atomic Communications

foo

foo

foo

Group.bar()

bar

bar

bar

Some programs become deterministic with

Atomic Group Communications

Some programs become deterministic with

Atomic Group Communications

Non Det. Prog. Det. Prog. with GroupsNon Det. Prog. Det. Prog. with Groups

Page 42: 2. CALCULUS:

3. Distributed Component Specification Cp. in Practice

GCM: Grid Component Model

Page 43: 2. CALCULUS:

GCM: Grid Component Model GCM Being defined in the NoE CoreGRID

(42 institutions) Open Source ObjectWeb ProActive

implements a preliminary version of GCM

GridCOMP takes: GCM as a first specification, ProActive as a starting point, and

Open Source reference implementation.

GCM Components

Scopes and Objectives:

- Grid Codes that Compose and Deploy

- No programming, No Scripting, … No Pain

The vision: The vision: GCMGCM to be the GRID to be the GRID GSMGSM for Europe for Europe

Page 44: 2. CALCULUS:

Collective Interfaces

Page 45: 2. CALCULUS:

Collective Interfaces

Simplify the design and configuration of component systems

Expose the collective nature of interfaces Cardinality attribute Multicast, Gathercast, gather-multicast

The framework handles collective behaviour at the level of the interface

Based on Fractal API : Dedicated controller Interface typing Verifications

Page 46: 2. CALCULUS:

Multicast interfaces

Transform a single invocation into a list of invocations

Multiple invocations Parallelism Asynchronism Dispatch

Data redistribution (invocation parameters) Parameterisable distribution function Broadcast, scattering Dynamic redistribution (dynamic dispatch)

Result = list of results

Page 47: 2. CALCULUS:
Page 48: 2. CALCULUS:

Multicast interfaces

Results as lists of results

Invocation parameters may also be distributed from lists

Page 49: 2. CALCULUS:

Gathercast interfaces

Transform a list of invocations into a single invocation

Synchronization of incoming invocations

~ “join” invocations Timeout / Drop policy Bidirectional Bindings

(callers callee)

Data gathering

Aggregation of parameters

into lists

Result: redistribution of results

Redistribution function

Page 50: 2. CALCULUS:

Virtual Nodes

Permits a program to generate automatically a deployment plan: find the appropriate nodes on which processes should be launched.

In the future, we envisage the adjunction of more sophisticated descriptions of the application needs with respect to the execution platform: topology, QoS, …

Page 51: 2. CALCULUS:

Virtual Nodes in the ADL

Renames a VN Exports a VN name

The final version of the GCM specification will precisely define the syntax for the virtual node definition, and their composition.

Page 52: 2. CALCULUS:

NEXT: Part 4. Middleware: ProActive

Page 53: 2. CALCULUS:
Page 54: 2. CALCULUS:
Page 55: 2. CALCULUS:

Services in ASP

Pending requests are stored in a queue.

Request service in ASP:

Serve(foo,bar) serves the oldest request on the method foo or bar.

Potential Service: an approximation of the set of services (set of methods M) that can appear in the Serve(M) instructions that an activity may perform in the future. = {{foo,bar},{gee}}

Page 56: 2. CALCULUS:

Perspectives: Distributed Components

Behavioral specification of component composition (ongoing)

Specify and study non-functional aspects in particular life-cycle and reconfiguration in a

distributed environment

A Formal basis fo the Grid Component Model (GCM) -- together with the kell-calculus Collective interfaces Grid specifics (distribution and heterogeneity) Put together hierarchy, structured communications and

non-functional aspects

PerspectivesPart VI

Page 57: 2. CALCULUS:

Equivalence Modulo Futures Updates

f1

f2

f3

Part III

Page 58: 2. CALCULUS:

Appendices

Page 59: 2. CALCULUS:

ASP Components: Characteristics

Well defined interfaces: served methods (should correspond to potential services)

Structured communications: Requests = Asynchronous method calls

Concurrent and Distributed: Primitive components as an abstraction for activities (threads)

Inherit futures, data-driven synchronization and asynchrony from ASP

ComponentsPart IV

Page 60: 2. CALCULUS:

A Deterministic Component

Based on deterministic primitive components. One-to-one mapping from Server to client interface

ComponentsPart IV

Page 61: 2. CALCULUS:

Equivalence Modulo Futures Updates (1)

f3

2 - Confluence and DeterminacyPart III

Page 62: 2. CALCULUS:

Equivalence Modulo Futures Updates (2)

f1

f2

f3

f1

f2

2 - Confluence and DeterminacyPart III

Page 63: 2. CALCULUS:

Equivalence Modulo Future Updates (2)

f2

f3

f1

f1

f2

f1

2 - Confluence and DeterminacyPart III

Page 64: 2. CALCULUS:

Compatibility

delta.foo()

foo

….Serve(foo,bar)

…Serve(foo,gee)

bar

gee

2 - Confluence and Determinacy

Serves the oldest request on foo OR bar

Part III

Page 65: 2. CALCULUS:

Confluence

Potential services:

2 - Confluence and Determinacy

P0

P Q

R

….Serve(foo,bar)

…Serve(foo,gee)

{foo,bar}, {foo,gee}

Part III

Page 66: 2. CALCULUS:

Confluence

Potential services:

2 - Confluence and Determinacy

RSL definition:

foo, bar, bar, gee

P0

P Q

R

{foo,bar}, {foo,gee}

Part III

Page 67: 2. CALCULUS:

Confluence

Potential services:

2 - Confluence and Determinacy

RSL definition:

Configuration Compatibility:

P0

P Q

R

{foo,bar}, {foo,gee}

foo, bar, bar, gee

foo, bar, bar, gee foo, bar, gee, barfoo, bar, bar, gee foo, bar, gee, barfoo, bar, bar, gee foo, bar, gee, bar

Part III

Page 68: 2. CALCULUS:

Confluence

Potential services:

2 - Confluence and Determinacy

RSL definition:

Compatibility Confluence

Configuration Compatibility:Execution characterized

by the order of request sendersExecution characterized

by the order of request senders

P0

P Q

R

Part III

Page 69: 2. CALCULUS:

Deterministic Object Networks

{foo,bar} , {foo,gee}

delta.gee(a)

gee

delta.bar(a)bar

{bar,gee} , {foo}

gee barbar gee

2 - Confluence and Determinacy

DON(P):

Part III

Page 70: 2. CALCULUS:

ASP Calculus Summary

An Asynchronous Object Calculus: Structured asynchronous activities Communications are asynchronous method calls with

futures (promised replies) 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 communicating over trees, …

Page 71: 2. CALCULUS:

Contents

A Theory of Distributed Objects

1 - ASP

2 - Confluence and Determinacy

3 - More Features: Groups

4 – Implementation Strategies: Future Updates

ASP Components

Perspectives

Page 72: 2. CALCULUS:

Implementation Strategies

ProActive

Future Update Strategies Futures are first class and can be returned at any time Lazy / Forward-based / Message-based.

Loosing Rendez-Vous Ensuring causal ordering with one-to-all FIFO ordering Comparison with other strategies, e.g. point-to-point

FIFO

Controlling Pipelining

4 – Implementation StrategiesPart V

Page 73: 2. CALCULUS:

Future Updates Summary

Mixed strategies are

possible

All strategies are

equivalent

(modulo dead-locks)

Part V, VI 4 – Implementation Strategies

Page 74: 2. CALCULUS:

Overview of Implementation Strategies: Queues, Buffering, Pipelining, and Strategies

Perspectives:

• Organize and synchronize implementation

strategies

• Design a global adaptative evaluation strategy

Perspectives:

• Organize and synchronize implementation

strategies

• Design a global adaptative evaluation strategy

Part VI 4 – Implementation Strategies

Page 75: 2. CALCULUS:

Services in ASP

Pending requests are stored in a queue.

Request service in ASP:

Serve(foo,bar) serves the oldest request on the method foo or bar.

Potential Service: an approximation of the set of services (set of methods M) that can appear in the Serve(M) instructions that an activity may perform in the future. = {{foo,bar},{gee}}

Page 76: 2. CALCULUS:

Deterministic Object Networks

{foo,bar} , {foo,gee}

delta.gee(a)

gee

delta.bar(a)bar

{bar,gee} , {foo}

gee barbar gee

DON(P):