6.1 The Classic Parallelism Models Supported by PVM

The PVM system supports the MIMD (Multiple Instruction Multiple Data) and SPMD (Single Program Multiple Data) models of parallelism. Actually, SPMD is a variation on the SIMD (Single Instruction Multiple Data) model. The models classify programs by instruction streams and data streams. In the MIMD model, a program consists of two or more concurrently executing instruction streams, each with its own local data stream. Essentially, each processor has its own memory. In the PVM environment the MIMD is considered a distributed memory model, which is in contrast to a shared memory model. In shared memory models each processor can see the same memory locations. In the distributed model memory values must be communicated through message passing. On the other hand, the SPMD model consists of a single program (the same set of instructions) concurrently executing on two or more machines with the program on each machine processing a different data stream. In other words, the same program on each machine is working with different pieces of data. The PVM environment supports both the MIMD and SIMD or a combination of these two models. Figure 6-1 shows the four classic models and where PVM programs are classified .

Figure 6-1. Four classic models of parallelism and the classification of PVM programs.

graphics/06fig01.gif

Notice in Figure 6-1 that the SISD and MISD models are not applicable to the PVM. The SISD model describes a uniprocessor machine and the MISD model has not yet been practically applied. The two models in Figure 6-1 that can be used with PVMs determine how a C++ program interacts with computers. The software developer sees one logical virtual computer as allowing either two or more different concurrently executing tasks , each with access to its own data, or the same task executing as a set of concurrent clones , with each clone accessing some different piece of data. For our purposes the Multiple Instructions and Single Program in Figure 6-1 refer to PVM tasks.



Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
ISBN: 0131013769
EAN: 2147483647
Year: 2002
Pages: 133

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net