Parallel Computing in Lisp
Tuesday, April 27, 2004
I remember reading an article (I think it was in
Time magazine)
about Connection
Machines (developed by
Thinking Machines Corporation) back in the early 1990's and being fascinated by the concept
of massively parallel computing. This was way before I got interested
in Lisp. Although I've never been able to do anything professionally
with
parallel computing, I've retained an interest in the
topic. (Note: Anyone interested in learning more about the Connection
Machine should read Denny Hillis' book
The Connection Machine. Anyone interested in the parallel
programming version of Lisp called *Lisp that ran on the Connection
Machine should download
JP Massar's port of the StarLisp simulator from
Franz's source repository.)
To a large extent, the world has moved away from special-purpose parallel computing machines
like the Connection Machine to general-purpose hardware with
standards-based parallel computing APIs.
PVM (Parallel Virtual Machine) and
MPI (Message Passing Interface) are messaging APIs that
have been used as the basis for parallel computing work for quite some time. Therefore, I
was interested to see the posting by Ivan Boldyrev
announcing the availability of
LPVM - a set of Lisp
UFFI bindings for PVM. For those unfamiliar with PVM/MPI:
- Introduction to PVM/MPI.
- Parallel processing links.
- A description of the differences between PVM and MPI (and some additional links) is discussed in the thread.
- MPI was used (see slide 13 of this presentation) by the team that constructed the Virginia Tech Supercomputer out of 1,100 Apple Macintosh computers.
- PVM/MPI are commonly used as the messaging interface for high-performance Linux Beowulf clusters.
- PVM is being used for Lisp-based Bioinformatics research.
- I Googled for "lisp pvm" and found a number of other Lisp/PVM efforts as well as some online documentation for another LPVM.

