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