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
Introduction
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.
Examples
Experimental Programs
Result from the experimentl Programs
Disscusion
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