Research Resumé: John Merlin


1982 - 86: Dept. of Theoretical Physics, University of Oxford
1986 - 89: Dept. of Physics, University of Southampton
1989: Transputer Technology Solutions
1989 - 96: Dept. of Electronics and Computer Science, University of Southampton
1996 - present: VCPC, University of Vienna


1982 - 86: Department of Theoretical Physics, University of Oxford.

My D. Phil. research was in the field of theoretical particle physics, in particular predicting the properties of `exotic' mesons [1, 12-14]. This involved a combination of theoretical and computational work, the latter culminating in the development of a computationally-intensive Fortran program to perform a lattice-based calculation (which required weeks of CPU time on a VAX 11/780!) [12].


1986 - 89: Department of Physics, University of Southampton.

Physics simulations in occam on transputers (1986 - 88)

On completing my D.Phil, in October 1986 I joined the Theoretical High Energy Physics group in the Physics Department of Southampton University. For the first two years I was involved in the Esprit Supernode project, whose objective was the "development and application of a reconfigurable multi-transputer machine". During this time I developed programs for two large high-energy physics applications on multi-transputer computers:

(i)
the calculation of magnetic monopole solutions and interactions in SU(2)-Higgs gauge theory, and
(ii)
the simulation of SU(2) and SU(3) lattice gauge theories with dynamical Kogut-Susskind fermions [36,37].
These applications were programmed in occam, the language of the transputer, and gave me experience in message-passing programming in two of the main parallel programming paradigms: processor farm parallelism (for the magnetic monopole studies) and geometric or data parallelism (for lattice gauge theory).

The magnetic monopole work was done in collaboration with the IBM UK Scientific Centre in Winchester, who employed advanced visualisation techniques to display the complicated solutions. The results were published in both academic and popular journals [10,11], and attracted the attention of two eminent mathematicians in Oxford, resulting in a collaboration with them to calculate and visualise the trajectories of a pair of colliding monopoles. These results were recorded in a short movie [38], which was shown at conferences and universities worldwide.

`Genesis' distributed memory benchmarks (1988 - 89)

After this I was involved in the pre-study phase of the Esprit Genesis project (October 1988 - March 1989). In this I developed two Fortran programs for the `Genesis' benchmark suite: CG2 (later renamed QCD2) and CG3, which perform the conjugate gradient iteration kernels of dynamical fermion lattice gauge theory simulations. Both sequential and message-passing versions were developed. I also used this benchmark suite to evaluate the T800 transputer, and an 8-processor Alliant FX/8 computer at the University of Urbana-Champaign, as part of a wide survey of parallel machines [7-8, 35].

More recently, in 1995 I developed HPF versions of these benchmarks, and in 1998 I developed highly optimised sequential Fortran 77 and Fortran 77 + MPI message-passing versions, together with scripts to simplify their use, and made the whole package available on the World Wide Web.

[CG2 and CG3 Web page.]


1989: Transputer Technology Solutions.

From April - September 1989 I worked at `Transputer Technology Solutions Ltd' (now the Southampton Parallel Applications Centre), a commercial offshoot of the Concurrent Computation group (see below). Here I performed a feasibility study for the Central Electricity Generating Board of porting a Cray Fortran program to multi-transputer machines [34]. I also developed a graphical performance monitor for transputers.


1989 - 96: Department of Electronics and Computer Science, University of Southampton.

From TTS Ltd. I moved back to Southampton University in October 1989, this time to the newly-formed Concurrent Computation Group in the Department of Electronics and Computer Science.

ADAPT, Distributed Fortran 90 and HPF (1989 - 92)

My experiences of data-parallel programming of transputers and other distributed-memory machines in the Supernode and Genesis projects convinced me of the need to develop software tools to support this programming model.

An opportunity to enter this field of research came in 1989 with the start of the Esprit project PUMA (`Parallel Universal Message-Passing Architectures'; October 1989 - March 1992). My idea was to explore the possibility of automatically transforming, for distributed-memory message-passing architectures, standard Fortran 90 programs that had been supplemented by declarations specifying how data were to be distributed over the processor memories. It appeared to me that some of the new features of Fortran 90, which was then a forthcoming new standard, could facilitate this task, for instance its array syntax which expressed the potential for data parallelism, and explicit procedure interfaces.

In the PUMA project I therefore designed a small set of extensions to Fortran 90 for specifying data distribution, called Distributed Fortran 90, and developed a translator (called ADAPT) to transform a Distributed Fortran 90 program into a standard Fortran program to run on each processor of the target machine, with calls to an array-based communications library (ADLIB) for performing the data communications [9, 23, 31-33].

At about the same time a few other academic groups independently developed proposals for similar extensions to Fortran, in particular Fortran D from Rice and Syracuse Universities and Vienna Fortran from the University of Vienna. In January 1992 an international working group was established to develop a standard for such extensions to Fortran, called `High Performance Fortran' (HPF), with the participation of all of the major parallel computer vendors and a number of leading research groups. My work, along with Fortran D and Vienna Fortran, provided a significant input to the language development, and indeed [32] was one of 6 major input documents to the forum. I was the originator and author of a new feature of HPF, `pure procedures' [5, section 4.3], and made a proposal for `elemental references' to pure procedures [6, section 12], as well as a number of other contributions to the standard. Both of these features have now both been incorporated in the latest revision of the official Fortran standard, Fortran 95.

Development of IDA, a Fortran interprocedural analyser (1992 - 94)

After the end of the PUMA project I was funded by the Esprit project CAMAS (`Computer Aided Migration of Application Systems'; October 1992 - September 1994) to develop tools to help programmers convert sequential Fortran codes into message-passing form. In this project I used the front-end of ADAPT as the basis for developing an interactive inter-procedural analyser, IDA [27, 29-30], which is now available in the public domain. I also began work on a static performance estimator for Fortran programs [4, 28].

As a small off-shoot of this work I also developed a tool called CMUNGE for encrypting and compacting C source codes, which I used to package IDA's source code for distribution.

[IDA Web page; CMUNGE Web page.]

Development of SHPF, an HPF compilation system (1994 - 96)

I left the CAMAS project in April 1994 before completing the latter tool in order to commence a two-year EPSRC-funded research project, with support from NAG Ltd, entitled "The Efficient Translation of HPF for Distributed Memory Systems". The aims of this project were to develop a Subset HPF (see Footnote 1) compilation system and to use it as a platform for the research and development of advanced optimisations for HPF.

This project resulted in the development of a public domain Subset HPF compilation system, SHPF. It comprises the ADAPT translator, which I modified to support Subset HPF, together with a runtime library, ADLIB, which was developed by a colleague in a related project. SHPF provides unusually comprehensive and unrestricted support for Subset HPF's data mapping features, and employs some novel and significant optimisations [2, 18-21]. It was released to a number of test sites in June 1995, and was made publicly available by anonymous ftp in December 1995. The development and enhancement of this system is an ongoing activity, and new versions were released in June 1996 and September 1997, and further upgrades are planned.

[SHPF Web page.]

`HPC Standards' project (1996)

From June 1996 until my departure from Southampton University at the end of October 1996 I was the coordinator of the Esprit HPC Standards project. Its purpose was to financially support European participation in meetings in the USA to develop three major HPC standards, namely HPF-2, MPI-2 (`Message-Passing Interface') and Parkbench (a standard set of parallel kernels and benchmarks), and to disseminate information about these activities electronically and by conducting workshops.

During my time in the project I set-up the project's Web page and expenses' claims procedure, and organised funding for a major HPF workshop in Vienna, at which I also gave a presentation about SHPF.


1996 - present: VCPC, Institute for Software Technology and Parallel Systems, University of Vienna.

I joined the VCPC in November 1996. The following are some of the projects and activities I have been involved in so far at the VCPC:
The PHAROS project.
This is an Esprit project to port four industrial Fortran 77 codes to HPF. It ran from January 1996 - December 1997, and I joined it at the end of the first year. I managed the VCPC's activities in the project, was leader of the project's dissemination workpackage, and also helped to convert the CANT-SD code (owned by CISE SpA) to HPF [25,26].

The FITS (`Fortran Integrated ToolSet') project.
This Esprit project, which started in June 1997 and lasts for 2 years, is developing an integrated toolset for the creation, migration and performance tuning of Fortran programs on HPC systems. It will integrate two existing commercial tools, FORESYS and VAMPIR, within a new graphical user interface. IDA is an input to the FITS design. I am managing the VCPC's activities in this project, and contributing to the parallelisation of Fortran 77 codes from Battelle GmbH, the development of an Open-MP parallelisation module and the FITS GUI, and dissemination activities.

The HPF User Group (`HUG').
This was established in 1997 and is currently led by Barbara Chapman of the VCPC. I created and am maintaining the HUG Web pages and email list, and I also organised the 2nd HUG conference, HUG'98, which was held in conjunction with Vecpar'98 in Portugal in June 1998.

The EuroTools working group.
I am a member of the HPF Special Interest Group of the Esprit EuroTools working group, whose aims are to disseminate information about HPF, and to promote communication and feedback between HPF users and tool and compiler vendors.

SHPF-KeLP.
This is a (spare time, unfunded) research project that I am undertaking with Scott Baden and Steven Fink of UCSD, to develop and experiment with a prototype SPMD-HPF programming system. The prototype implementation involved interfacing the C++ class library KeLP with my HPF compiler SHPF. KeLP provides the coordination and communication facilities for irregular, dynamic block-structured computations, and in this implementation it can invoke multiple HPF procedures in parallel, one for each block [15, 17].

Miscellaneous.
I am continuing to maintain and further develop SHPF and IDA.

In July and August 1998 I made further developments to the Genesis CG2 and CG3 benchmarks, namely optimising the HPF and Fortran 77 versions and producing an optimised Fortran 77 + MPI message-passing version. I also developed scripts to facilitate their use and made the whole package available on the World Wide Web.

Other activities include Web page creation and maintenance, and giving HPF tutorials [16].

 

Footnotes:
(1) Subset HPF was an officially-defined subset of the HPF 1.0 language that was intended to be implemented by initial releases of HPF compilers as a first step. In practice, commercial HPF compilers have mainly concentrated on supporting this core set of extensions, and the latest version of the HPF language definition, HPF 2.0, is very similar to Subset HPF 1.0 in terms of its extensions to standard Fortran. [Back to the text]

[John Merlin's homepage]


John Merlin (jhm@vcpc.univie.ac.at).
Last updated Sat Aug 29 1998.