Abstract

Recently, the first commercial High Performance Fortran (HPF) subset compilers have appeared. This article reports on our experiences with the xHPF compiler of Applied Parallel Research, version 1.2, for the Intel Paragon. At this stage, we do not expect very High Performance from our HPF programs, even though performance will eventually be of paramount importance for the acceptance of HPF. Instead, our primary objective is to study how to convert large Fortran 77 (F77) programs to HPF such that the compiler generates reasonably efficient parallel code. We report on a case study that identifies several problems when parallelizing code with HPF; most of these problems affect current HPF compiler technology in general, although some are specific for the xHPF compiler. We discuss our solutions from the perspective of the scientific programmer, and presenttiming results on the Intel Paragon. The case study comprises three programs of different complexity with respect to parallelization. We use the dense matrix-matrix product to show that the distribution of arrays and the order of nested loops significantly influence the performance of the parallel program. We use Gaussian elimination with partial pivoting to study the parallelization strategy of the compiler. There are various ways to structure this algorithm for a particular data distribution. This example shows how much effort may be demanded from the programmer to support the compiler in generating an efficient parallel implementation. Finally, we use a small application to show that the more complicated structure of a larger program may introduce problems for the parallelization, even though all subroutines of the application are easy to parallelize by themselves. The application consists of a finite volume discretization on a structured grid and a nested iterative solver. Our case study shows that it is possible to obtain reasonably efficient parallel programs with xHPF, although the compiler needs substantial support from the programmer.

Highlights

  • Our ohjectiv~ is tlw conversion of Fortran 77 (F77) program~ to High Performance Fortran (HPF) pro-Hect'ivcd OrtoiH'r 199:; HcvioPd \larch I

  • Once more. it is important to note that in several cases, the xHPF compiler has to rely on interprocedural analysis, because its handling of distributed data over subroutine boundaries is nonstandard and can create problems if distribution of actual arguments is not moved to the subroutine where the arrays are declared

  • Our ease studv revealed several problems with the conversion of F77 programs to HPF programs: the loop parallPlization match, the optimization gap, program changes to support the compiler with program sections whose parallelization is not dear from the data distribution. directive-based implicit alignment, loop-based implicit alignment. alias problems, and propagation problems introduced by the interprocedural analysis

Read more

Summary

INTRODUCTION

Our ohjectiv~ is tlw conversion of Fortran 77 (F77) program~ to High Performance Fortran (HPF) pro-. These routines provide both parallel computational functions as well as inquiry functions, which allow explicit adaptation of the program to the run-time configuration. The compiler is expected to generate reasonably efficient parallel code automatically. This especially involves the distribution of arrays. The most important use of the APR directives is to force the compiler to make certain performance optimizations, like forced loop parallelization, or to omit communication or synchronization that would be generated otherwise. We use a dense matrix-matrix product to show that the distribution of arrays and the order of nested loops significantly influence the performance of the parallel program. Our case study reveals three main results: (1) It is possible to obtain reasonably efficient parallel programs 'vith xHPF. Our case study reveals three main results: (1) It is possible to obtain reasonably efficient parallel programs 'vith xHPF. (2) A detailed analysis of the F77 program and sometimes of the HPF compiler-generated program is required, and partial rewriting/restructuring of F77 programs seems necessary. (:3) The learning effort is substantiaL because the IlPF compiler needs significant support from the programmer

MULTIPROCESSOR ARCHITECTURE AND HPF ENVIRONMENT
CASE STUDY
F77 Programs
Parallel Programming with xHPF
All local
Experimental Analysis
IG 24 32 40 48 5G G4 72 80 88 9G
Review of Experimental Analysis
Optimization gap
DISCUSSION
Hints for Programming with HPF
Findings
CONCLUSIONS
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call