Browse Prior Art Database

Implementation of Interface Block for High Performance Fortran

IP.com Disclosure Number: IPCOM000117363D
Original Publication Date: 1996-Feb-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 97K

Publishing Venue

IBM

Related People

Komatsu, H: AUTHOR [+2]

Abstract

Disclosed is an efficient implementation method of interface blocks for High Performance Fortran (HPF). Interface blocks in HPF can specify the decomposition of array data arguments either prescriptively or descriptively, which generally entail the code generation for sizing resolution and data remapping for array arguments at each of the subroutine boundaries. By generating codes of an internal procedure for interface, an efficient implementation is possible for HPF avoiding the explosive increase in the size of the resulting object code, even for programs with multiple calls to such subroutines.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Implementation of Interface Block for High Performance Fortran

      Disclosed is an efficient implementation method of interface
blocks for High Performance Fortran (HPF).  Interface blocks in HPF
can specify the decomposition of array data arguments either
prescriptively or descriptively, which generally entail the code
generation for sizing resolution and data remapping for array
arguments at each of the subroutine boundaries.  By generating codes
of an internal procedure for interface, an efficient implementation
is possible for HPF avoiding the explosive increase in the size of
the resulting object code, even for programs with multiple calls to
such subroutines.  This is a contrast to the conventional method,
which has been applied for implementing statement functions of
Fortran90, where codes are inlined at each of the corresponding
subroutine calls based on a set of template codes generated for
interface blocks, replacing the formal arguments to actual arguments.

      The program transformation is as follows.  First of all, for
those of interface blocks which specify a boundary with descriptive
distributions or an extrinsic procedure interface, an internal
procedure is generated with the sizing resolution and remapping code
for each of the array boundary arguments as the body statements.  The
original procedure is called in this internal procedure, followed by
the code remapping back to restore the original decomposition for
remapped array arguments.  Secondly, the corresponding procedure call
in the main program is transformed into the call to the generated
internal procedure.  The optional arguments are supplied to the
internal procedure corresponding to each of the actual arguments to
indicate whether or not the data redistribution is actually required.
The opti...