Porting a 2D Acoustic Wave Modeling application to HPF :
issues and problems.

Julien ZORY
Centre de Recherche en Informatique
Ecole des mines de Paris - France

The HPF programmer's main task is to specify how data elements are to be distributed on virtual processors. The compiler "automatically" handles local computations and interprocessor communications. However, it often remains necessary to modify the original source code in order to accommodate both the data parallel programming model constraints and the pecularities of the compiler.

This talk focuses on different issues and problems that were encountered when porting a simple Fortran 77 application of "2D Acoustic Wave Modeling" (from Institut Francais du Pétrole) to HPF. This application has been executed on an IBM SP2 and on a network of Sparc workstations. Three HPF compilers were used in order to evaluate the correctness and portability of this program. These compilers are xlhpf (the native commercial compiler from IBM), Adaptor (the public domain compiler from GMD-Germany), and hpfc (the HPF compiler prototype from Ecole des mines de Paris-France). Furthermore, the standard MPI communication protocol was used by the three run-time librairies in order to provide a more realistic comparison of their relative performances.

We start with a brief description of the application and its distribution strategy. The second part then focuses on I/O related problems (either a read/write statement within a loop nest or I/O operations hidden in a procedure call). Additional difficulties concerning reduction and timing techniques are described as well. Finally, we discuss the measured performance, and point out speedup losses observed with respect to a hand-optimized sequential version (software pipelining, loop unrolling, etc.).

Even though adding directives is sometimes good enough to port an existing application to HPF, a long adaptation process with debugging and profiling tools is needed in (too) many cases.

Selected for presentation at
The 2nd Annual HPF User Group meeting
Porto, Portugal, 25 - 26 June 1998

If you want to know more about this work, just take a look at the slides.