NTI-282—High Performance Fortran Translation: Final Report

Background

In late 1993 we proposed to develop a portable translation system for the newly defined parallel language High Performance Fortran (HPF). This system would be made freely available to higher education establishments.

At that time fully commercial HPF compilers were not widely available (commercial systems have since become available but even now remain quite experimental). It was suggested that a public domain translator—although it may not provide the performance eventually expected from proprietary compilers— would fulfil a valuable educational need, allowing students and researchers to experiment with this potentially important new scientific programming language.

Southampton was well placed to produce such a product, on account of research into HPF and precursor languages that had been pursued for several years in the University’s Department of Electronics and Computer Science (ECS). That research had already generated a body of software that could form the basis of a Subset HPF translation system.

The NTI contribution

The proposed system was to consist of two major components: a translator from HPF to sequential Fortran 90, and a run-time library.

The translator would convert an HPF program to an ordinary Fortran program with calls to a communication library. Copies of the Fortran program could then be executed in parallel. To realistically support the complex HPF programming model, much of functionality of the translation system would be shifted into the high-level communication library (the “run-time system”). This library would directly support general data remapping and matrix arithmetic on HPF arrays.

The translator would be based on the ADAPT translation tool already under development in ECS. The run-time library, to be called ADLIB, would be specially developed for the new HPF system.

Work on enhancement of the ADAPT translator was done mainly by its original author, John Merlin, who was eventually supported by an independent SERC award. The NTI funding supported one researcher—Bryan Carpenter— who worked principally on development of the new library, and also on integration, documentation, distribution and support of the complete system.

Development of Adlib and SHPF

Much of 1994 was taken up with an intensive design effort. Initially this concentrated on a translation scheme for HPF—before the library interface could be specified, it was important to know what the generated Fortran code it might look like. Mid-year the emphasis shifted to specification of the library itself. It was decided early on that the implementation would be in C++ (with a Fortran interface), assuming the new MPI standard as the message passing platform (rather than PVM, as stated in the original proposal). By September the requirements for the C++ interface to the library were reasonably well understood, and a first specification was in place by October.

Between November and early ’95 the initial implementation of Adlib took shape. By mid-February the translator could translate simple test programs, and enough of the library was available to run the generated codes. The translator and library were extended and improved over the next two months. May was spent building a software release, and debugging.

The first release of SHPF (Southampton HPF) was announced to our beta test sites—the other JISC HPC Centres—on June 9th.

The rest of the year was spent improving the software—extending functionality, debugging, improving efficiency, rationalising the implementation, and improving portability—and installing the and supporting the software at various sites, on various platforms. A fully public domain version of the SHPF software was finally made available earlier this year.

Products

The main deliverable of the project was, of course, the SHPF translation system. This is available by anonymous FTP from

  ftp.ccg.ecs.soton.ac.uk

in

  pub/packages/shpf

It can be downloaded directly through the Web page:

  http://www.ccg.ecs.soton.ac.uk/shpf/shpf.html

Many associated documents are also available through this page.

HPF Workshop

The NTI project also funded an HPF tutorial and workshop held at the University of Southampton 10-11th October, 1995. About 35 people attended the tutorial, and over 50 the workshop. On-line proceedings are available through the Web page:

  http://www.ccg.ecs.soton.ac.uk/shpf/hpf-workshop.html

Current and future work

Both the SHPF system and Adlib are still under very active development. The SHPF system is now maintained principally by John Merlin (jhm@ecs.soton.ac.uk). Recent developments include a hybrid HPF/C++ system to be demonstrated at Supercomputing ‘96.

The Adlib library is being used by its developer (now employed at NPAC, Syracuse, USA) as a basis for a new run-time library being developed in the PCRC (Parallel Compiler Runtime Consortium) project at Syracuse. The library will probably be used in at least one new public domain HPF compiler. A standalone Adlib release is likely to be made public in the new year.