Author's email: arild@ii.uib.no
A new Application Programming Interface (API) for Fortran programs has emerged after the HPF standard was complete. This API, called OpenMP, is a set of directives and library routines that can be used to specify (shared memory) parallelism in Fortran programs. OpenMP targets new architectures that were not addressed before by the HPF Forum. Shared Memory Multiprocessor architectures (SMP), as the new SGI Cray Origin 2000, claims the need for new directives. These directives focus on loop level parallelism and the breaking of dependencies in loops. Although the directives in OpenMP are different from HPF, the programming model is similar to the one of HPF; single-program multiple data (SPMD).
As part of a preparation for a larger programming project for high performance seismic imaging, Parallab has developed a model for tracing seismic waves in heterogeneous media implemented both in OpenMP and HPF. Our goal was to gain insight of the differences between these languages - and to use this knowledge as input in the high performance seismic imaging project. In this paper we discuss the performance of our seismic model using the SGI Cray Origin 2000 machine, a four way symmetric SMP, using OpenMP and HPF. Results are also given for SGI's proprietary POWER Fortran extensions. Further, we discuss the similarities and differences between these languages, notably the lack of Fortran 95 support in OpenMP and POWER Fortran.