Scientific Programming with High Performance Fortran: A Case Study Using the xHPF Compiler

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,...

Full description

Bibliographic Details
Main Authors: Eric De Sturler, Volker Strumpen
Format: Article
Language:English
Published: Hindawi Limited 1997-01-01
Series:Scientific Programming
Online Access:http://dx.doi.org/10.1155/1997/528513
id doaj-379e7d5c43b647a482d4cbf2aea1ba53
record_format Article
spelling doaj-379e7d5c43b647a482d4cbf2aea1ba532021-07-02T05:03:54ZengHindawi LimitedScientific Programming1058-92441875-919X1997-01-016112715210.1155/1997/528513Scientific Programming with High Performance Fortran: A Case Study Using the xHPF CompilerEric De Sturler0Volker Strumpen1Swiss Center for Scientific Computing, Swiss Federal Institute of Technology (ETH), Zurich, SwitzerlandDepartment of Electrical anal Computer Engineering, University of Iowa, 4400 Engineering Building, Iowa City, IA 52242, USARecently, 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.http://dx.doi.org/10.1155/1997/528513
collection DOAJ
language English
format Article
sources DOAJ
author Eric De Sturler
Volker Strumpen
spellingShingle Eric De Sturler
Volker Strumpen
Scientific Programming with High Performance Fortran: A Case Study Using the xHPF Compiler
Scientific Programming
author_facet Eric De Sturler
Volker Strumpen
author_sort Eric De Sturler
title Scientific Programming with High Performance Fortran: A Case Study Using the xHPF Compiler
title_short Scientific Programming with High Performance Fortran: A Case Study Using the xHPF Compiler
title_full Scientific Programming with High Performance Fortran: A Case Study Using the xHPF Compiler
title_fullStr Scientific Programming with High Performance Fortran: A Case Study Using the xHPF Compiler
title_full_unstemmed Scientific Programming with High Performance Fortran: A Case Study Using the xHPF Compiler
title_sort scientific programming with high performance fortran: a case study using the xhpf compiler
publisher Hindawi Limited
series Scientific Programming
issn 1058-9244
1875-919X
publishDate 1997-01-01
description 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.
url http://dx.doi.org/10.1155/1997/528513
work_keys_str_mv AT ericdesturler scientificprogrammingwithhighperformancefortranacasestudyusingthexhpfcompiler
AT volkerstrumpen scientificprogrammingwithhighperformancefortranacasestudyusingthexhpfcompiler
_version_ 1721339079284490240