High Performance Fortran (HPF) is an extension of
Fortran 90 designed to support
parallel computing
Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
, developed by the ''High Performance Fortran Forum'' (HPFF). The HPFF was convened and chaired by
Ken Kennedy of
Rice University
William Marsh Rice University, commonly referred to as Rice University, is a Private university, private research university in Houston, Houston, Texas, United States. Established in 1912, the university spans 300 acres.
Rice University comp ...
. The first version of the HPF Report was published in 1993.
Building on the array syntax introduced in Fortran 90, HPF employs a
data-parallel model of computation, enabling the distribution of array computations across multiple processors. This design facilitates efficient execution on both
SIMD
Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
and
MIMD architectures. Key features of HPF include:
* New Fortran constructs, such as
FORALL
, and the ability to define
PURE
(side-effect-free) procedures
* Compiler directives for recommended array data alignment and distribution, influenced by prior efforts such as Fortran D
An overview of Fortran D
Retrieved 29 March 2023 and Vienna Fortran
* Directives for specifying processor arrangements (e.g., rank, extent)
* Directives for asserting loop iteration independence to enable parallel execution
* An ''extrinsic procedure'' interface, allowing integration with non-HPF parallel code such as message-passing libraries
* Additional library routines, including:
** Environmental inquiry functions
** Parallel prefix and suffix operations (e.g., scan, segmented scan)
** Data scattering and gathering
** Sorting
Sorting refers to ordering data in an increasing or decreasing manner according to some linear relationship among the data items.
# ordering: arranging items in a sequence ordered by some criterion;
# categorizing: grouping items with similar p ...
operations
Some HPF capabilities were incorporated into the Fortran 95 standard. Subsequently, the HPFF reconvened and released the HPF 2.0 Report, which removed features already standardized in Fortran 95 and revised other sections based on implementation experience with HPF 1.0.
Although several vendors implemented HPF compilers in the 1990s, adoption was limited due to the complexity of implementation and limited practical benefit for some applications. Since then, most developers have transitioned to using OpenMP
OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, ...
for parallel programming. Nonetheless, HPF has had a lasting influence on the evolution of parallel programming in Fortran. For instance, the BIT
data type proposal for the Fortran 2008 standard included several intrinsic functions derived from HPF.
See also
* Partitioned global address space
External links
HPFF
- Rice University
William Marsh Rice University, commonly referred to as Rice University, is a Private university, private research university in Houston, Houston, Texas, United States. Established in 1912, the university spans 300 acres.
Rice University comp ...
HPF Forum
Internet Parallel Computing Archive : Standards : Hpf
* tp://ftp.fhg.de/archive/gmd/adaptor/ ADAPTOR An open-source HPF compilation system
HPF+
- HPF for advanced applications
The rise and fall of High Performance Fortran: an historical object lesson
References
{{reflist
Concurrent programming languages
Fortran programming language family