
Memo is a distributed shared memory system in which parallel processes communicate through a shared directory of unordered queues.
| Table of Contents |
|---|
| Availability |
| Documentation |
| Informal history |
| Related IIT Parallel Processing Projects |
| Related projects elsewhere |
| People |
There are two versions available. Both versions are offered utterly without warrantee and without support.
| memo.c memo.h |
New for SGIs with standard C prototypes. Our thanks to Sungsoo Kim for doing the conversion. |
| memo.zip | The shared-memory version of Memo. |
| dmemo-1.2.tgz | The network version. Contains its own manual. Tarred and gzipped. (Currently unavailable while we check out some installation problems.) |
| Comparison to Linda | Brief comparison of Memo to the Linda system which inspired it. |
| The Memo Manual | The manual for the shared-memory memo system. |
Chapter 4 of CS546 Class Notes: "The MEMO System: A Shared
Directory of Unordered Queues"
|
Describes the Memo system, gives a collection of programming techniques, and discusses Memo's relationship to the Linda system. |
| Memo Programming Techniques | Under Construction. Paper on programming techniques for Memo. |
MEMO was designed by Thomas W. Christopher. The inspiration was the Linda parallel programming system which allows parallel processes to communicate through a "tuple space." It became clear from looking at Linda algorithms that the tuple space was being used mostly as a shared directory of unordered queues. Thus it appeared that tuple space itself was not a valuable innovation, but rather that it was its ability to implement a dynamic shared directory of queues that made tuple space useful. The next step was obvious: implement a shared directory of queues directly.
The shared memory version was implemented by Christopher for use in his course CS546, "Parallel Processing," at Illinois Institute of Technology.
Bill O'Connell designed and lead a project designing and implementing D-Memo, a distributed-memory version. O'Connell was mainly interested in D-Memo as a proof of concept for his parallel processing frameworks and has not chosen to make this first version of D-Memo into a product.
The D-Memo version available here was written by Mike Isely as an extension of his CS546 class project and benefiting from his work on OConnell's D-Memo project.
George K. Thiruvathukal was the leader of the High-Performance Languages and Systems group at the time O'Connell was working on D-Memo and took part in the implementation. Thiruvathukal was particularly involved in the "transferables' framework" which would allow both the disk storage and the communication across a network of linked structures of C++ objects. The transferables' framework does not appear in the Memo systems available here; they are packages for C rather than C++. It does, however, appear in Thiruvathukal's TLC data structure package for C++ and in his Enhanced Actors parallel programming package.
| MDC90 | Our Message-Driven Computing language. Implemented as an extension of C using a preprocessor, it uses a distributed-memory/ pattern-driven-control paradigm. It was used very successfully by Dr. Peter Wohl in his work on machine learning. |
| AMDC | Active Message-Driven Computing is a MIMD-DM package in C that allows active messages
to be sent to abstract locations where they execute scripts and access other messages in a
table at the location. It can be used to implement
Implementing AMDC was the class project of CS546 "Parallel Processing" this Autumn '96 semester. |
| Enhanced Actors | Dr. George K. Thiruvathukal's object-oriented message-driven computing package for C++. |
| http://www.cs.yale.edu/HTML/YALE/CS/Linda/linda.html | The Linda project. |
| http://www.cs.yale.edu/HTML/YALE/CS/Linda/piranha.html | The Piranha project (related to Linda). |
| Table of links to parallel processing projects | Here and elsewhere |
| Dr. Thomas W. Christopher | Invented, designed, and implemented Memo. |
| Dr. William O'Connell | Lead the team that designed and implemented D-Memo atop his parallel processing frameworks as a proof of concept. Dr. O'Connell has not chosen to make his implementation into a product. |
| Mr. Mike Isely | Was a member of O'Connell's team. Isely later implemented the D-Memo system available here. |
| Dr. George K. Thiruvathukal | Worked with O'Connell's team. He has designed and implemented Enhanced Actors, an application of object-oriented technology to message-driven computing. |
Back to: Thomas Christopher's home page; Computer Science Department's home page; IIT's home page