The portability of parallel programs across MIMD computers
Calvin Lin · 1992
Parallel processing is important to the future of high performance computing. At present, the main impediment to parallel computing is the high cost of parallel software. These costs can be reduced by creating portable programs. But while there have been many proposed approaches to portable parallel programming, none has yet been demonstrated to be effective. This thesis tests the effectiveness of one particular approach--for MIMD computers--that consists of the CTA machine model, the Phase Abstractions programming model, and the Orca C programming language. The CTA defines the algorithm designer's view of a machine, the Phase Abstractions provide an abstraction of the CTA that guides the construction of programs, and Orca C provides a language for expressing the programmer's solutions. We begin by presenting an experimental study that compares the performance of shared memory and non-shared memory programs on shared memory machines. These results show that the non-shared memory programming model, which is based on the CTA machine model, has wide applicability. We then study a large scientific benchmark, showing that a Phase Abstractions implementation of SIMPLE is portable across a variety of MIMD computers. We also use this example to describe the Orca C language and show how it leads to flexible programs that can adapt to different hardware environments through parameterization. Because of the huge diversity of parallel architectures, this flexibility is crucial to supporting portability. Finally, we consider two real applications, matrix multiplication and the Modified Gram-Schmidt method of solving QR factorization. Because these studies involve algorithm design, they allow us to indirectly observe the role that the CTA machine model plays in achieving portability. We develop machine independent algorithms for these two applications and present performance results for various parallel computers.