Next: Contents
High Performance Fortran
Language Specification
High Performance Fortran Forum
January 31, 1997
Version 2.0
The High Performance Fortran Forum (HPFF), with participation from
over 40 organizations, met from March 1992 to March 1993 to define a
set of extensions to Fortran called High Performance Fortran (HPF).
Our goal was to address the problems of writing data parallel programs
for architectures where the distribution of data impacts performance.
While we hope that the HPF extensions will become widely available,
HPFF is not sanctioned or supported by any official standards
organization. The HPFF had a second series of meetings from April
1994 to October 1994 to consider requests for corrections,
clarifications, and interpretations to the Version 1.0 HPF document
and also to develop user requirements for possible future changes to
HPF. A third set of meetings took place From January 1995 through
December 1996 to incorporate features recommended to meet user needs
identified in the 1994 meetings.
This document contains all the technical features proposed for the
version of the language known as HPF Version 2.0. This copy of the
draft was processed by LaTeX on March 19, 1997
.
HPFF encourages requests for interpretation of this document, and
comments on the language defined here. We will give our best effort
to answering interpretation questions, and general comments will be
considered in future HPFF language specifications.
Please send interpretation requests to hpff-interpret@cs.rice.edu.
Your request is archived and forwarded to a group of HPFF
committee members who attempt to respond to it.
The text of interpretation requests becomes the property of Rice
University.
© 1994, 1995, 1996, 1997 Rice University, Houston, Texas.
Permission to copy without fee all or part of this material is
granted, provided that the Rice University copyright notice and the
title of this document appear, and notice is given that copying is by
permission of Rice University.
- Contents
- Introduction
- High Performance Fortran Language
- Data Mapping
- Data Mapping in Subprogram Interfaces
- INDEPENDENT and Related Directives
- Extrinsic Program Units
- Intrinsic and Library Procedures
- Notation
- System Inquiry Intrinsic Functions
- Computational Intrinsic Functions
- Library Procedures
- Generic Intrinsic and Library Procedures
- Specifications of Intrinsic Procedures
- Specifications of Library Procedures
- ALL_PREFIX(MASK, DIM, SEGMENT, EXCLUSIVE)
- ALL_SCATTER(MASK,BASE,INDX1, ..., INDXn)
- ALL_SUFFIX(MASK, DIM, SEGMENT, EXCLUSIVE)
- ANY_PREFIX(MASK, DIM, SEGMENT, EXCLUSIVE)
- ANY_SCATTER(MASK,BASE,INDX1, ..., INDXn)
- ANY_SUFFIX(MASK, DIM, SEGMENT, EXCLUSIVE)
- COPY_PREFIX(ARRAY, DIM, SEGMENT)
- COPY_SCATTER(ARRAY,BASE,INDX1, ..., INDXn,
MASK)
- COPY_SUFFIX(ARRAY, DIM, SEGMENT)
- COUNT_PREFIX(MASK, DIM, SEGMENT, EXCLUSIVE)
- COUNT_SCATTER(MASK,BASE,INDX1, ..., INDXn)
- COUNT_SUFFIX(MASK, DIM, SEGMENT, EXCLUSIVE)
- GRADE_DOWN(ARRAY,DIM)
- GRADE_UP(ARRAY,DIM)
- HPF_ALIGNMENT(ALIGNEE, LB, UB, STRIDE,
AXIS_MAP, IDENTITY_MAP, NCOPIES)
- HPF_DISTRIBUTION(DISTRIBUTEE, AXIS_TYPE,
AXIS_INFO, PROCESSORS_RANK, PROCESSORS_SHAPE)
- HPF_TEMPLATE(ALIGNEE, TEMPLATE_RANK, LB, UB,
AXIS_TYPE, AXIS_INFO, NUMBER_ALIGNED)
- IALL(ARRAY, DIM, MASK)
- IALL_PREFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- IALL_SCATTER(ARRAY,BASE,INDX1, ..., INDXn,
MASK)
- IALL_SUFFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- IANY(ARRAY, DIM, MASK)
- IANY_PREFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- IANY_SCATTER(ARRAY,BASE,INDX1, ..., INDXn,
MASK)
- IANY_SUFFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- IPARITY(ARRAY, DIM, MASK)
- IPARITY_PREFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- IPARITY_SCATTER(ARRAY,BASE,INDX1, ...,
INDXn, MASK)
- IPARITY_SUFFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- LEADZ(I)
- MAXVAL_PREFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- MAXVAL_SCATTER(ARRAY,BASE,INDX1, ...,
INDXn, MASK)
- MAXVAL_SUFFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- MINVAL_PREFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- MINVAL_SCATTER(ARRAY,BASE,INDX1, ...,
INDXn, MASK)
- MINVAL_SUFFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- PARITY(MASK, DIM)
- PARITY_PREFIX(MASK, DIM, SEGMENT,
EXCLUSIVE)
- PARITY_SCATTER(MASK,BASE,INDX1, ...,
INDXn)
- PARITY_SUFFIX(MASK, DIM, SEGMENT,
EXCLUSIVE)
- POPCNT(I)
- POPPAR(I)
- PRODUCT_PREFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- PRODUCT_SCATTER(ARRAY,BASE,INDX1, ...,
INDXn, MASK)
- PRODUCT_SUFFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- SORT_DOWN(ARRAY,DIM)
- SORT_UP(ARRAY,DIM)
- SUM_PREFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- SUM_SCATTER(ARRAY,BASE,INDX1, ..., INDXn,
MASK)
- SUM_SUFFIX(ARRAY, DIM, MASK, SEGMENT,
EXCLUSIVE)
- HPF Approved Extensions
- Approved Extensions for Data Mapping
- Approved Extensions for Data and Task Parallelism
- Approved Extension for Asynchronous I/O
- Approved Extensions for HPF Extrinsics
- Approved Extensions to the HPF Intrinsic and Library Procedures
- Specifications of Extended Intrinsic Procedures
- Specifications of Extended Library Procedures
- HPF_ALIGNMENT(ALIGNEE, LB, UB, STRIDE,
AXIS_MAP, IDENTITY_MAP, DYNAMIC, NCOPIES)
- HPF_DISTRIBUTION(DISTRIBUTEE, AXIS_TYPE,
AXIS_INFO, PROCESSORS_RANK, PROCESSORS_SHAPE,
PLB, PUB, PSTRIDE, LOW_SHADOW, HIGH_SHADOW)
- HPF_TEMPLATE(ALIGNEE, TEMPLATE_RANK, LB, UB,
AXIS_TYPE, AXIS_INFO, NUMBER_ALIGNED, DYNAMIC)
- HPF_MAP_ARRAY(ARRAY, TEMPLATE_DIM,
MAP_ARRAY)
- HPF_NUMBER_MAPPED(ARRAY,
PROCESSORS_DIM,
NUMBER_MAPPED)
- Annexes
- References
- About this document ...
Next: Contents