Linda -- A Cool Programming Idea
Links:
-
The best link is http://www.sca.com/LINDA_overview.html
-
The original developers are http://www.cs.yale.edu/Linda/linda.html
What is Linda?
It's a cool parallel programming idea offering
-
Seriously easy programming.
-
Easy to achieve fault tollerence.
-
Obvious hetergenaity in terms of both hardware and programming languages
-
Can run in background on networks of workstations
So what's wrong with Linda?
-
It is not the fastest solution possible.
-
It does not scale perfectly well for LARGE problems.
The Basic Idea
There is a Tuple Space, which consists of an associative memory
of tuples. Each tuple is an ordered list of items, and each item
has a value and a type. For example, ("hello", 10, 20.3) and
({1,2,3,4,5,}, 5, "The Solution") are both tuples.
Some process places into tuple space the initial data needed to solve
the problem. Other processestake data from tuple space and refine
it, producing data closer to the output. When the last transformation
has finished, the answer is in tuple space.
A Chess Example -- Find the Checkmates
The basic data item shall be the tuple (board position, list
of moves).
The initial process places (current_position, null) into tuple space.
Each worker
reads in (board_position, moves)
for each position that can be reached
from board_position with one move
If the new position is not a checkmate
add (new_position, moves + new_move)
Else
out("Check Mate", moves + new_move)