PyLinda 0.1 By Andrew Wilkinson <aw at cs dot york dot ac dot uk> Contents -------- 1. Introduction 2. Installation 3. Using Linda 4. Known Problems 5. Contact 6. License 1. Introduction --------------- Linda is an widely studied distributed computing environment, centered around the notion of a tuple space. A tuple space is a bag (also called a multi-set) of tuples. A tuple is an ordered, typed chunk of data. Tuple spaces exist independently of processes in the system, and the data placed into a tuple space also exist independently. See "Generative communication in Linda" (1985) and "Multiple tuple spaces in Linda" both by David Gelernter for more information on Linda. PyLinda is a simple implementation of a linda system, however it also includes several of the more recently proposed extensions to Linda in the form of multiple tuple spaces, garbage collection, sane non-blocking primitives and bulk tuple operations. 2. Installation --------------- To install simply unpack the tarball, and execute 'python setup.py install'. PyLinda requires a Python 2.3+ and has only been tested on Linux and Solaris, however it should be possible for it to other operating systems. It may be possible for the server and some client programs to run under Windows, however since it does not support 'fork' several of the included examples will not work. 3. Using Linda -------------- First a server must be started - 'linda_server.py'. Then a client program must be started, the simplest is just the python interactive interpreter. bash$ python
import linda linda.connect() linda.universe._out((1,2,3))
Now quit that interpreter, and start a new one... bash$ python
import linda linda.connect() linda.universe._in((int, int, int)) (1, 2, 3)
If you want to add a new computer to the linda network simply run
'linda_server.p -c<ip address or dns name>' where the computer you supply
is already running a linda server.
4. Known Problems
-----------------
* The actual implementation is quite slow. The process of storing tuples is
slow and uses a large amount of memory, this could probably be fixed by
rewriting that bit in C.
* No support for the eval primitive.
* Only built in types (and tuplespace references) can be included in
tuples. This will change in the future, and is the subject of my PhD.
* Documentation is very thin and could do with improving. People with some
knowlege of Linda should not have a problem using PyLinda however.
5. Contact
----------
All the latest news and information about PyLinda can be found at
http://www-users.cs.york.ac.uk/~aw/pylinda.
Comments, suggestions and bug reports are all welcome at aw at cs dot york
dot ac dot uk
6. License
----------
For full details of the license see the file LICENSE.
Copyright 2004 Andrew Wilkinson