[comp.parallel] Summary: Paralation Model

spector@brillig.umd.edu (Lee Spector) (07/10/90)

A while back I asked about the Paralation Model, an architecture-independent
model for parallel programming.  The following is a compilation of 
informative segments of the responses that I got.  Many people asked
for a summary, so developers take note: there is significant interest
in tools of this kind!  I have removed headers and attributions to people
other than Gary Sabot, the developer of the paralation model, and I've also
cut out anything that didn't seem to be of general interest.  (I hope that
this is all proper netiquette.)  Thanks everyone! -Lee

Begin Summary
----
I noticed your message about Sabot's "Paralation Model" the other day,
and was reminded that I bought a copy of the Mac implementation a year
or so ago when the book first appeared. At the time, I was using an
old version of Coral Common Lisp on a 2.5 Mbyte mac+. When I got the
disks, I tried to load and compile the stuff, and never really
succeeded. I kept getting stack overflows during the compile, and I
figured I just didn't have enough machine to work with. I also
uploaded the .lisp files to my Sun, and had no trouble loading and
compiling them under Lucid CL, but I never did get around to playing
with it, or even to complaining to Sabot/MIT Press that the Mac
version didn't seem to work.

After reading your message, I tried again on the mac, since I now have
a IIci with 8 Mbytes and MACL 1.3.2. Going through the load/compile
process, it still dumps me out into the debugger with a stack overflow
after getting through most of the process. On the other hand, it did
write out compiled versions of all the files, which I was then able to
load and save an image. I haven't run this enough to know whether it
actually works as advertised, though.

All of which is to say that at least in the form I got this stuff for
the Mac, it doesn't seem too well set up for `plug and play'
operation. 

----
We used Paralation Lisp for the data-parallel portion of a parallel
programming course here in Spring 1989.  While the students loved data
parallelism, there were two major problems with Paralation Lisp.  First, the
restriction about all variables in an elwise form having to come from the
same paralation is a nuisance when writing functions.  You have to move one
of the variables into the paralation of the other, and this is ugly.
Second, the move operation is an ugly way of representing communication.
Since we were using a serial implementation, I have no idea about speedups.

----
[this is from the same person who complained about bugs above.  -Lee]

Thinking about Paralation Lisp again prompted me to write to Gary
Sabot at TMC to find out more about what's happened with it. My
impression from his response is - not much. But anyway, here's what he
had to say about the problems I reported to you, and  about the
question of a CM implementation.

------- Forwarded Message

I'm sorry to hear you are having trouble with the software.  A macIIci with
8 Meg certainly has enough horsepower!  Before I released it, I tested it
with Allegro Comon Lisp on a Mac at Coral's office in Cambridge, fixing
bugs in both my software and their compiler, until it worked.  This was
about two years ago.  Unfortunately, since it worked on their "current"
version, I didn't make a note of what version number it was.  I think it
might have been Allegro 1.1.

[stuff deleted]
  ... try running the function (pl-user::pl-test) with the image that seems
to work, and tell me if it succeeds or fails.  If it fails, try deleting
the fasl files and just loading the "load.lisp" file, so everything will be
loaded interpreted instead of compiled, and run pl-test with that.
Finally, can you tell which files don't have fasl versions, and what file
was being compiled when the compiler died?


   Anyway, I'd like to know if this toy serial implementation has been
   developed further since the version I got (identified on the diskette
   as "Macintosh version 4.1"). And especially since you're at TMC, is
   there a version that runs on the CM; and if so, what kind of
   performance does it give? Would it be possible to get a copy that I
   could run on the CM2 at UMIACS (U Maryland)?

There are two or three minor bug fixes, but MIT press is still shipping the
4.1 version.  There was a CM1 version, but none of it works anymore.  Guy
Blelloch and I have been working on and off on CM2 implementations; its at
at the stage where it can compile a few examples, but it isn't really
usable by anyone other than us.  There is a paper on it if you are
interested:


   @article{alg:paralation-sv-lisp,
   author = "Guy E. Blelloch and Gary W. Sabot",
   title = "Compiling Collection-Oriented Languages Onto Massively Parallel
   		 Computers",  
   journal = "Journal of Parallel and Distributed Computing",
   year = 1990,
   volume = "8",
   number = "2",
   pages = "119--134",
   month = "February"}
   %Also available from Thinking Machines as tech report PL-89-1

- --gary



------- End of Forwarded Message

----

My impression was that the ideas underlying the paralation model (various
ways of abstracting concepts of "processor", "communication pattern", etc.)
have found their ways into the latest TMC software (Paris, C*), but I believe 
nobody is using Paralation Lisp itself for any serious work; *Lisp is
awful enough that it Paralation Lisp were mature enough, people would
prefer it as the Lisp interface to the CM.

----
Hi,

I had done some work writing some simple programs using Paralation
Lisp.  I found it a very nice language for expressing data parallel
algorithms.  Particularly nice, I thought, was the sense I had that it
need not run in a SIMD environment.  Specifically, I could imagine a
MIMD implementation of the language (though I don't know of any
machines that would do this efficiently yet).

Last I heard, the CM implementation was pretty bad performance-wise.
----

--End of Summary