Linda (coordination language)

From Wikipedia, the free encyclopedia

Jump to: navigation, search

In computer science, Linda is a model of coordination and communication among several parallel processes operating upon objects stored in and retrieved from a 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 Gelernter. IBM also has a tuplespace platform named 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.[citation needed] Detailed criticisms of the Linda model can also be found in Steven Ericsson-Zenith's book Process Interaction Models[1].

The language name seems to be a pun on Ada's tribute to Ada Lovelace [1]

  1. ^ Ericsson-Zenith (1992). Process Interaction Models. Paris University. 

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.