Linda (coordination language)

Linda (coordination language)

In computer science, 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 tuplespace
*out produces a tuple, writing it into tuplespace
*eval creates new processes to evaluate tuples, writing the result into tuplespace

Linda was developed by David Gelernter and Nicholas Carriero at Yale University.

Compared to other parallel-processing models, Linda is more orthogonal in that it treats process coordination as a separate activity from computation, and it is more general in that it can subsume various levels of concurrency—uniprocessor, multi-threaded multiprocessor, or networked—under a single model. Its orthogonality allows processes computing in different languages and platforms to interoperate using the same primitives. Its generality allows a multi-threaded Linda system to be distributed across multiple computers, or vice-versa, without change.

Whereas message-passing models require tightly-coupled processes sending messages to each other in some sequence or protocol, Linda processes are decoupled from other processes, communicating only through the tuplespace; a process need have no notion of other processes except for the kinds of tuples consumed or produced (data coupling).

Linda implementations can be found for Prolog, Ruby (Rinda), Python, C, Smalltalk, Java and Lisp.The earliest commercial and widespread implementation of virtual shared memory for supercomputers and clustered system was C-Linda or TCP-Linda from Scientific Computing Associates, founded by Martin Schultz.IBM also has a tuplespace platform named [http://www.almaden.ibm.com/cs/TSpaces/ TSpaces] .
JavaSpaces is an implementation of Linda in Java by Sun, incorporated into the Jini project.

Researchers have proposed more primitives to support different types of communication and co-ordination between (open distributed) computer systems, and to solve particular problems arising from various uses of the model. Researchers have also experimented with various means of implementing the virtual shared memory for this model.Many of these researchers proposed larger modifications to the original Linda model, developing a family of systems known as Linda-like systems and implemented as orthogonal technology (unlike original version). An example of this is the language Ease designed by Steven Ericsson-Zenith.

Criticisms of Linda from the multiprocessing community tend to focus on the decreased speed of operations in Linda systems as compared to MPI systems.Fact|date=June 2007 Detailed criticisms of the Linda model can also be found in Steven Ericsson-Zenith's book "Process Interaction Models"cite book | last=Ericsson-Zenith | authorlink=Steven Ericsson-Zenith | |title=Process Interaction Models|publisher=Paris University|date=1992|] .

The language name seems to be a pun on Ada's tribute to Ada Lovelace, referring to Linda Lovelace who became known as an actress in the porn movie Deep Throat [http://www.kamat.com/vikas/blog.php?BlogID=261]

Publications

* cite web
last = Gelernter
first = David
last = Carriero
first = Nicholas
year = 1992
url = http://www.caip.rutgers.edu/~virajb/readinglist/coordinationlang.pdf
title = Coordination Languages and their Significance
publisher = Communications of the ACM
format=PDF

* cite web
last = Wells
first = George
url = http://wcat05.unex.es/Documents/Wells.pdf
title = Coordination Languages: Back to the Future with Linda
publisher = Rhodes University
format=PDF

* cite web
last = Sluga
first = Thomas Arkadius
url = http://www.geocities.com/player_master2000/cpplinda_bsc_thesis.pdf
title = Modern C++ Implementation of the LINDA coordination language
publisher = University of Hannover
format=PDF

External links

* [https://sourceforge.net/projects/cpplinda/ Linda for C++]
* [http://www.comp.nus.edu.sg/~wongwf/linda.html Linda for C]
* [http://code.google.com/p/erlinda/ Erlinda (for Erlang)]
* [http://www.cs.bris.ac.uk/Publications/Papers/2000380.pdf Linda for Java]
* [http://www.sics.se/sicstus/docs/3.7.1/html/sicstus_29.html Linda for Prolog]
* [http://www-users.cs.york.ac.uk/aw/pylinda/ PyLinda (for Python)]
* [http://segment7.net/projects/ruby/drb/rinda/ Rinda (for Ruby)]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Linda — can refer to: * Linda (name), a female given name (including a list of people with this as their given name) * Linda (musician), a Russian musician who is the main vocalist of the band with the same name * Linda (1946 song) , a popular song… …   Wikipedia

  • Linda — n. female first name; family name; city in central California (USA); daughter of Danaus who was worshipped on Rhodes (Greek Mythology); coordination language which is implemented as a subroutine library for a certain base language (Computers) …   English contemporary dictionary

  • Sign language in infants and toddlers — This article is about the usage of sign language to communicate with infants and toddlers.DevelopmentIn the United States, teaching sign language to non signing families to communicate with their hearing infants and toddlers was developed by… …   Wikipedia

  • Tuple space — A tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of… …   Wikipedia

  • Message Passing Interface — MPI, the Message Passing Interface, is standardized and portable message passing system designed by a group of researchers from academia and industry to function on a wide variety of parallel computers. The standard defines the syntax and… …   Wikipedia

  • Programming in the large and programming in the small — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • PyLinda — is a Python implementation of the Linda coordination language. It is supposed to be a very simple implementation of the Linda distributed computing environment. it supports several newly proposed extensions to Linda like garbage collection,… …   Wikipedia

  • Parallel Virtual Machine — NOTOC The Parallel Virtual Machine (PVM) is a software tool for parallel networking of computers. It is designed to allow a network of heterogeneous Unix and/or Windows machines to be used as a single distributed parallel processor. Thus large… …   Wikipedia

  • Parallel programming model — A parallel programming model is a set of software technologies to express parallel algorithms and match applications with the underlying parallel systems. It encloses the areas of applications, programming languages, compilers, libraries,… …   Wikipedia

  • Tree programming — refers to the use of a programming language to analyze data trees, in a way unique from conventional programming languages. This should not be confused with list based programming languages like Lisp and Scheme. Related languages *Linda… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”