coordination languages and their significance paper by: david gelernter nicholas carriero presented...

19
Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Upload: rachel-turner

Post on 17-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Coordination Languages and their Significance

Paper by: David Gelernter Nicholas Carriero

Presented by: Varuna Iyengar

Page 2: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

OutlineWhat is a Computational and a Coordination

model?Background on Linda Integration or separation argumentsEnsemblesArguments in favor of separation Basic claims with regard to separationPortability and heterogeneityEconomy and Flexibilty1. Interpolation2. Extrapolation Conclusion

Page 3: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Computation and Coordination languagesA computational language is something

that allows the programmer to build a single computational activity.

A coordination language, is the glue that binds separate activities into an ensemble.

It provides operations to create computational activities and to support communication among them.

An example of a coordination language is Linda.

Page 4: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Linda Linda is a model of coordination and communication among

several parallel processes operating upon objects stored in and retrieved from shared, virtual, associative memory. This model is implemented as a "coordination language" in which several primitives operating on ordered sequence of typed data objects, "tuples," are added to a sequential language, such as C, and a logically global associative memory, called a tuplespace, in which processes store and retrieve tuples.

The original Linda model requires four operations that individual workers perform on the tuples and the tuplespace:

in atomically reads and removes—consumes—a tuple from tuplespace

rd non-destructively reads a tuplespaceout produces a tuple, writing it into tuplespace eval creates new processes to evaluate tuples, writing the

result into tuplespace

Page 5: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Arguments in favor of separation of coordination and communication languages

Asynchronous ensembles: way of the future.

Computational problems are orthogonal to problems of coordination among active agents.

There’s a need to define general purpose coordination languages, as these languages support full range of ensembles, from parallel applications, distributed systems etc..

Page 6: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

EnsemblesAn Asynchronous ensemble is a

collection of asynchronous activities that communicate.

The definition of an ensemble is not restricted to distributed systems, parallel applications. It includes systems communicating through time. Eg., a file system.

Page 7: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

OrthogonalityA computational language by

itself is useless!So is a coodination language!All useful computing depends on

a combination of the two

Page 8: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

GeneralityThe needs of say, a distributed

system builder may be different from that of a parallel applications builder.

So it is important to have different models for different systems.

Page 9: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Further arguments in favor of separation and generality:Separation: Portability and

support for heterogeneityGenerality: Economy and

flexibility

Page 10: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

PortabilityReusability or recycle-abilityWhen moving from one platform

to a different one, we would like to retain as much as possible.

An integrated language sacrifices computing –language portability completely and in many cases compromises the other varieties.

Page 11: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

HeterogeneityGeneralization of portabilityIf our systems works well with a

system X or system Y, it may very well work well with a system composed of both X and Y

Page 12: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Economy and FlexibilitySimple economical languages

tend to be supple and powerful, while complex ones are generally rigidly inflexible.

By the means of a general purpose coordination language, we can bridge the gap that separates massive parallelism from task oriented parallelism

Two possibilities: interpolation and extrapolation

Page 13: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Interpolation

Why do we need more than one communication systems to handle something that can be accomplished with one system alone?

Page 14: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Because…Projects such as realtime data

fusion and expert databases “refuse” to be categorized.

That is, they require coordination tools to work in different settings.

Page 15: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

ExtrapolationConsider the communication

between people in a system like Linda.

Instead of processes, imagine people communicating in Linda.

The system now consists of a tuple space surrounded by people who release, read and retrieve tuples directly.

Also, each person may be represented by a software system

Page 16: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Therefore, we can now build an information sharing software, in which each tuple is an information object.

To sum it up– when we introduce general purpose coordination language, it results in the broadening of the intellectual scope.

Page 17: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

ConclusionResearch in this area would lead

to the development of a tool of great power and significance.

It would also provide a better understanding of the root problems of Computer Science

Page 18: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Referenceswww.wikipedia.com

Page 19: Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar

Questions?