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: HPspmd Language Extensions
Up: The HPspmd Programming Model
Previous: The HPspmd Programming Model
Contents
Bryan Carpenter
2004-06-09