|Volume 7, Issue 1 -
HIGH PERFORMANCE FORTRAN INTERFACES FOR ScaLAPACK BEING DEVELOPED
Jack Dongarra, University of Tennessee; Will Sawyer, Norio Masuda, Andreas Muller, Yoshimichi Murakami, Swiss Scientific Computing Center
Combining the CRPC's strengths in High Performance Fortran (HPF) and linear algebra software, this project has developed programming interfaces to "seamlessly" call ScaLAPACK routines within HPF applications. Using HPF with these interfaces will help parallel programmers take advantage of ScaLAPACK, a high-quality numerical library that has broad application in science and engineering.
ScaLAPACK, developed with the help of CRPC researchers including Jack Dongarra and others at the University of Tennessee, is a library of FORTRAN 77 subroutines used to solve linear algebra problems on distributed-memory computers. The library offers highly efficient parallel routines for vector-vector, matrix-vector, and matrix-matrix operations, matrix factorizations, and eigenvalue solvers and has been adopted as part of the numerical subroutine library offered by IBM, Cray, the Numerical Algorithms Group (NAG), and others.
HPF, created by a CRPC-led consortium, is an informal industry-wide standard for parallel Fortran. HPF defines parallel extensions for several distributed and shared-memory computers. The HPF interface to ScaLAPACK is being done as a joint project between the ScaLAPACK group in cooperation with the Swiss Scientific Computing Center in Manno, Switzerland.
The interfaces developed by this project will bridge the data parallel-based HPF and ScaLAPACK by defining data distributions with simple HPF directives and then calling efficient ScaLAPACK routines. For a given numerical application, the interfaces provide an option to writing code entirely in HPF or in Fortran 77 using direct calls to ScaLAPACK. Each interface provides a "wrapper," which defines data distributions and calls ScaLAPACK routines from within an interface. An individual wrapper provides information for a specific type of data distribution, based on the block-cyclic data distributions defined in the HPF program.
To alleviate the problem of creating interfaces for all 350 ScaLAPACK routines, an automatic generator using the macro language M4 is used to create the interfaces. Its function is facilitated by the fact that the interfaces are similar to each other, differing only by data type. This generator also eases the maintenance of the interface program, allowing parts of it to be changed by changing the input arguments in the generator.
Recent implementations of the program have helped researchers check the correctness of the program and evaluate its performance. Specifically, the program has been tested using two problems: matrix-matrix multiplication and LU decomposition. For more information on this project contact Jack Dongarra (firstname.lastname@example.org ).
The software package ScaLAPACK is available online. For more information see http://www.netlib.org/scalapack/index.html. The HPF-ScaLAPACK interface software is currently being developed and will be made available early in 1996.
Table of Contents