next up previous
Next: Acknowledgements Up: An HPspmd Programming Model Previous: HPJava an HPspmd language

Conclusions

In this article we discussed motivations for introducing an HPspmd programming model: a SPMD framework for using libraries based on distributed arrays. It adopts the model of distributed arrays standardized by the HPF Forum, but relinquishes the high-level single-threaded model of the HPF language. This makes compilers or translators for the HPspmd-extended languages a relatively straightforward proposition. As a concrete example, we described the specific syntax of HPJava.

Two recent languages that have some similarities to our HPspmd languages are F- - and ZPL. F- - [18] is an extended Fortran dialect for SPMD programming. The approach is different to the one proposed here. There is no analogue of global subscripts, or HPF-like distribution formats. In F- - the logical model of communication is built into the language--remote memory access with intrinsics for synchronization--where our basic philosophy is to provide communication through separate libraries. ZPL [20] is a array parallel programming language for scientific computations. It has a construct for performing computations over a region, or set of indices, quite similar to our overall construct. Communication is more explicit than HPF, but not as explicit as in the language discussed in this article.

Figure 3: A pipelined matrix multiplication program.
\begin{figure}\small\begin{verbatim}Procs1 p = new Procs1(P) ;
on(p) {
Rang...
...mp, b, 1, 1) ;
HPspmd.copy(b, tmp) ;
}
}\end{verbatim}\normalsize\end{figure}

At the time of writing the HPJava translator is partially operational. Ongoing work will complete the functionality, and add some optimization for the generated code. The language definition calls for full compile-time or runtime checking of the constraints on locality of reference. The translator will be enhanced to add these. Early benchmarks results will be included in the final version of this paper.


next up previous
Next: Acknowledgements Up: An HPspmd Programming Model Previous: HPJava an HPspmd language
Bryan Carpenter 2002-07-11