Next: Contents
High Performance Fortran
Language Specification
High Performance Fortran Forum
November 10, 1994
Version 1.1
The High Performance Fortran Forum (HPFF), with participation from over
40 organizations, met from March 1992 to March 1993 to discuss and
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.
This is the Final Report, Version 1.1, of the High Performance Fortran
Forum 1994 meetings.
This document contains all the technical features proposed for the
version of the language known as HPF 1.1
This copy of the draft was processed by LaTex on
Thu Dec 8 17:24:12 CST 1994
.
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 Rice University, Houston Texas. Permission to copy
without fee all or part of this material is granted, provided 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
- Overview
- High Performance Fortran Terms and Concepts
- Data Alignment and Distribution Directives
- Data Parallel Statements and Directives
- 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, DYNAMIC, NCOPIES)
- HPF_TEMPLATE(ALIGNEE, TEMPLATE_RANK, LB, UB, AXIS_TYPE,
AXIS_INFO, NUMBER_ALIGNED, DYNAMIC)
- HPF_DISTRIBUTION(DISTRIBUTEE, AXIS_TYPE, AXIS_INFO,
PROCESSORS_RANK, PROCESSORS_SHAPE)
- 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)
- SUM_PREFIX(ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- SUM_SCATTER(ARRAY,BASE,INDX1, ..., INDXn, MASK)
- SUM_SUFFIX(ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- Extrinsic Procedures
- Storage and Sequence Association
- Subset High Performance Fortran
- Coding Local Routines in HPF and Fortran 90
- Conventions for Local Subprograms
- Local Routines Written in HPF
- Restrictions
- Argument Association
- HPF Local Routine Library
- Accessing Dummy Arguments by Blocks
- GLOBAL_ALIGNMENT(ARRAY, ...)
- GLOBAL_DISTRIBUTION(ARRAY, ...)
- GLOBAL_TEMPLATE(ARRAY, ...)
- GLOBAL_LBOUND(ARRAY, DIM)
- GLOBAL_SHAPE(SOURCE)
- GLOBAL_SIZE(ARRAY, DIM)
- GLOBAL_UBOUND(ARRAY, DIM)
- ABSTRACT_TO_PHYSICAL(ARRAY, INDEX, PROC)
- PHYSICAL_TO_ABSTRACT(ARRAY, PROC, INDEX)
- LOCAL_TO_GLOBAL(ARRAY, L_INDEX, G_INDEX)
- GLOBAL_TO_LOCAL(ARRAY, G_INDEX, L_INDEX, LOCAL, NCOPIES, PROCS)
- MY_PROCESSOR()
- LOCAL_BLKCNT(ARRAY, DIM, PROC)
- LOCAL_LINDEX(ARRAY, DIM, PROC)
- LOCAL_UINDEX(ARRAY, DIM, PROC)
- Local Routines Written in Fortran 90
- Example HPF Extrinsic Procedures
- Coding Single Processor Routines in HPF
- Conventions for Uniprocessor Subprograms
- Serial Routines Written in HPF
- Intrinsic and Library Procedures
- Example HPF_SERIAL Extrinsic Procedure
- Syntax Rules
- High Performance Fortran Terms and Concepts
- Data Alignment and Distribution Directives
- Data Parallel Statements and Directives
- Extrinsic Procedures
- Storage and Sequence Association
- Syntax Cross-reference
- Nonterminal Symbols That Are Defined
- Nonterminal Symbols That Are Not Defined
- Terminal Symbols
- References
- About this document ...
Next: Contents
paula@erc.msstate.edu
Thu Dec 8 16:17:11 CST 1994