By Andrew Wilkinson <aw at cs dot york dot ac dot uk>
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.
import linda linda.connect() linda.universe._out((1,2,3))
Now quit that interpreter, and start a new one...
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/%7Eaw/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 email@example.com.
This file is part of PyLinda (http://www-users.cs.york.ac.uk/%7Eaw/pylinda)
PyLinda is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
PyLinda is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with PyLinda; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA