High Performance Fortran (HPF) is an extension of
Fortran 90 with constructs that support
parallel computing
Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different fo ...
, published by the ''High Performance Fortran Forum'' (HPFF). The HPFF was convened and chaired by
Ken Kennedy of
Rice University
William Marsh Rice University (Rice University) is a Private university, private research university in Houston, Houston, Texas. It is on a 300-acre campus near the Houston Museum District and adjacent to the Texas Medical Center. Rice is ranke ...
. The first version of the HPF Report was published in 1993.
Building on the array syntax introduced in Fortran 90, HPF uses a
data parallel
Data parallelism is parallelization across multiple processors in parallel computing environments. It focuses on distributing the data across different nodes, which operate on the data in parallel. It can be applied on regular data structures lik ...
model of computation to support spreading the work of a single
array
An array is a systematic arrangement of similar objects, usually in rows and columns.
Things called an array include:
{{TOC right
Music
* In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
computation over multiple processors. This allows efficient implementation on both
SIMD
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it should ...
and
MIMD
In computing, multiple instruction, multiple data (MIMD) is a technique employed to achieve parallelism. Machines using MIMD have a number of processors that function asynchronously and independently. At any time, different processors may be exe ...
style architectures. HPF features included:
* New Fortran statements, such as
FORALL
, and the ability to create
PURE
(
side effect
In medicine, a side effect is an effect, whether therapeutic or adverse, that is secondary to the one intended; although the term is predominantly employed to describe adverse effects, it can also apply to beneficial, but unintended, consequence ...
free) procedures
* Compiler directives for recommended distributions of array data
* ''Extrinsic procedure'' interface for interfacing to non-HPF parallel procedures such as those using
message passing
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting i ...
* Additional library routines - including environmental inquiry, parallel prefix/suffix (e.g.,
'scan'), data scattering, and
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 pro ...
operations
Fortran 95 incorporated several HPF capabilities. In response, the HPFF again convened and published the HPF 2.0 Report. The updated report removed material which was already covered by Fortran 95. The report was also reorganized and revised based on experience with HPF 1.0.
While some vendors did incorporate HPF into their compilers in the 1990s, some aspects proved difficult to implement and of questionable use. Since then, most vendors and users have moved to
OpenMP
OpenMP (Open Multi-Processing) 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 syste ...
-based parallel processing. However HPF continues to have influence. For example, the proposed
BIT
data type for the upcoming{{Update inline, ?=yes, date=August 2016
Fortran-2008 standard contains a number of new intrinsic functions taken directly from HPF.
See also
*
Partitioned global address space
In computer science, partitioned global address space (PGAS) is a parallel programming model paradigm. PGAS is typified by communication operations involving a global memory address space abstraction that is logically partitioned, where a portion ...
External links
HPFF-
Rice University
William Marsh Rice University (Rice University) is a Private university, private research university in Houston, Houston, Texas. It is on a 300-acre campus near the Houston Museum District and adjacent to the Texas Medical Center. Rice is ranke ...
HPF Forum
* http://wotug.org/parallel/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
Concurrent programming languages
Fortran programming language family