Parallel Random Access Machine (PRAM) Model Emulator

Yueh-Lin Liu and Siripong Kaewyou

Final project for
CS-551 (Parallel Computing: Models, Languages, and Architectures)
Computer Science Department 
Boston University


A PRAM model consists of P processors, a shared memory, and a common clock. In this PRAM emulator, we can choose P as an arbitrary positive number. The purpose of this project is to use PRAM Emulation software to understand PRAM model. Since there exists no real PRAM machine, we can use this software in a sequential computer. The PRAM emulator which includes the pel assembler and emulator is written in ANSI C. "Pel" is an assembly style language and the notation of the instructions is like in the PRAM model. The "pel" assembler takes "pel" program file as input and outputs binary form file. The emulator "pa" takes an assembled "pel" program file as input and follows the instructions in the file. Then we can use a set of dumping facilities to monitor the execution of the PRAM program. This PRAM emulator was downloaded from University of Joensuu, Finland. The assembly-like "pel" programming language is a low level language. It is not convenient to use. They also implemented another high level programming language called "pm2". It is based on Modula-2 with additional elements for the control of parallelism. The execution times of the primitives match the costs of the primitives used in PRAM-algorithm theory. To try the following programs, you need to load several programs. This is the quick manual.


Experimental Programs

Result from the experimentl Programs


This is a good emulator. There are several good reasons to use it. First, it can run on sun workstation. We don't need the expensive CM-5. Second, the "pm2" syntax is easy to learn. Writing a program is just like writing an algorithm. Last and the most important one, the emulator has the capability to trace time complexity. We can prove that some algorithms are really working. With these software, we can really try them and trace the time complexity. After we tried the experimental problems, the results are satisfied. We think it is useful for understanding not only PRAM model but parallel algorithms. The examples part are cited from the original package. In the experimental programs part, some of the questions are from homeworks, and some of them are from lab seminar. We wrote the programs, then test it, and prove the results.

This page is created by Yueh-Lin Liu and Siripong Kaewyou
Created: 1994.11.30
Updated: 1994.12.15