One of the most popular models for designing parallel algorithms is PRAM (Parallel Random Access Machine). A PRAM consists of unbounded number of processors interrelating with each other through a common communication network and shared memory. There are several ways to execute the PRAM model. We shall discuss three of them in this unit: message passing, data parallel and shared memory. We shall also cover these models and associated data structures here.
A number of routine and languages libraries have been invented to support these models. Some of them are specific to particular platforms and some are architecture independent. We shall begin two of the widely accepted routine libraries in this part. These are Message Parallel Virtual Machine (PVM) and Passing Interface (MPI).