next up previous
Next: General translation issues. Up: HPspmd language extensions Previous: HPspmd language extensions

Java, Fortran and C++ versions.

A Java instantiation (HPJava) of the HPspmd language model outlined above has been described in [10,9]. A brief review is given in section 3.1. HPJava is a superset of the Java language that adds predefined classes and some additional syntax for dealing with distributed arrays. It also adds three new control constructs, including the overall distributed loop, which is used to traverse local elements of distributed arrays.

In [7] we have outlined possible syntax extensions to Fortran to provide similar semantics to HPJava. As emphasized previously, a distinguishing property of the proposed system, compared to HPF, is that it includes ordinary Fortran as a strict subset, and ordinary Fortran constructs are unchanged by the translator. The proposed system would not attempt to exploit parallelism even in constructs such as the array syntax of Fortran 90 or the FORALL statement of Fortran 95, because those constructs operate on the standard sequential arrays of the language. This policy drastically simplifies the translator, and gives the programmer much finer control over the generated code.

So far as C++ is concerned, a working prototype of our language model exists in the form of the ad++ interface to Adlib [5,12]. This extends C++ only by class libraries and macros. In C++ we can use features like operator-overloading, templates, reference-valued functions, and macros to effectively prototype new language constructs. But the current ad++ is very inefficient (and the concrete syntax is quite clumsy) compared with what could be achieved with a purpose-built compiler or preprocessor.

In the proposed work, research into optimizing compilers and preprocessor for HPspmd versions of Fortran and C++ will be led by our collaborater Professor Xiaoming Li from Peking University.


next up previous
Next: General translation issues. Up: HPspmd language extensions Previous: HPspmd language extensions
Bryan Carpenter 2002-07-12