A Comparison of HPF and VPP Fortran: How it has been used in the Design and Implementation of HPF/JA Extensions

Hidetoshi Iwashita, Naoki Sueyasu, and Sachio Kamiya
Middleware Division, Software Group
Fujitsu Ltd.
140 Miyamoto, Numazu-shi
Shizuoka 410-0396, Japan


Matthijs van Waveren
Fujitsu European Centre for Information Technology Ltd.
2 Longwalk Road, Stockley Park
Uxbridge, Middlesex UB11 1AB, UK

 

In general, MPI can be used to achieve high performance on a distributed memory environment. However, the data parallel language VPP Fortran has been used on the Fujitsu VPP series supercomputers as regularly as MPI in the last seven years. The reason is that the VPP Fortran language specification is capable of extracting high performance from the VPP hardware, which consists of a crossbar network and distributed processors with vector units, and has such useful features as global name space and data and computational decomposition.

We will compare VPP Fortran and HPF in this presentation. Firstly, both of them are data parallel languages, but VPP Fortran has in addition the character of SPMD since it treats variables local to each processor. These local variables are not exactly similar to the NEW and RESIDENT variables of HPF. Secondly, HPF on the one hand requires the programmer to describe data decomposition and the compiler to generate computational decomposition. The result is that the efficiency of the generated code depends strongly on the ability of the compiler to generate computational decomposition. VPP Fortran on the other hand does not expect high-level optimization of the compiler. It requires the programmer to describe both decomposition of data and computation using an abstraction called index partition. Many user applications have been produced using VPP Fortran since the first version was released.

Discussions in the Japan Association for HPF (JAHPF) resulted in the consideration that the HPF language specification has the potential power to encourage compiler optimization but does not have sufficient features to describe the optimization details in the critical portion of a whole program. To improve the capability of the specification, JAHPF proposed seven extended features which were included in the HPF/JA language specification version 1.0. The following extended features have been designed from experience in VPP Fortran:

The LOCAL directive differs from the RESIDENT directive insofar that the RESIDENT directive specifies that the specified data exist in the active processor set, and data access might require communication.

HPF/JA extensions are carefully designed not to restrict compiler optimizations that would be performed if they were absent. It is not an order to the compiler but a suggestion to the compiler, in order to keep the semantics of the other directives in HPF.

We have supported most of the HPF/JA language specification on the VPP800 and VPP5000 series and confirmed over 90% of the performance of VPP Fortran.

We will discuss the open issues in HPF/JA at the end of the presentation.