next up previous contents
Next: HPspmd Language Extensions Up: The HPspmd Programming Model Previous: The HPspmd Programming Model   Contents


Motivations

The SPMD programming style has been popular and successful, and many parallel applications have been written in the most basic SPMD style with direct low-level message-passing such as MPI [18]. Moreover, many high-level parallel programming environments and libraries incorporating the idea of the distributed array, such as the Global Array Toolkit [35], can claim that SPMD programming style is their standard model, and clearly work. Despite the successes, the programming approach lacks the uniformity and elegance of HPF--there is no unifying framework. Compared with HPF, allocating distributed arrays and accessing their local and remote elements are clumsy. Also, the compiler does not provide the safety of compile-time checking. The HPspmd programming model described here brings some ideas, and various run-time and compile-time techniques, from HPF. But it gives up some basic principles, such as the single, logical, global thread of control, the compiler-determined placement of computations, and the compiler-decided automatic insertion of communications. Our model is an explicitly SPMD programming model supplemented by syntax--for representing multiarrays, for expressing that some computations are localized to some processors, and for constructing a distributed form of the parallel loop. The claim is that these features make calls to various data-parallel libraries (e.g. high level libraries for communications) as convenient as making calls to array intrinsic functions in Fortran 90. We hope that our language model can efficiently handle various practical data-parallel algorithms, besides being a framework for library usage.
next up previous contents
Next: HPspmd Language Extensions Up: The HPspmd Programming Model Previous: The HPspmd Programming Model   Contents
Bryan Carpenter 2004-06-09