Next: HPFF Acknowledgements
Up: High Performance Fortran Language
Previous: High Performance Fortran Language
- 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 ...
Acknowledgments
Since its introduction over three decades ago, Fortran has been the
language of choice for scientific programming for sequential
computers. Exploiting the full capability of modern architectures,
however, increasingly requires more information than ordinary FORTRAN
77 or Fortran 90 programs provide. This information applies to such
areas as:
- Opportunities for parallel execution;
- Type of available parallelism - MIMD, SIMD, or some combination;
- Allocation of data among individual processor memories; and
- Placement of data within a single processor.
The High Performance Fortran Forum (HPFF) was founded as a coalition of
industrial and academic groups working to suggest a set of standard
extensions to Fortran to provide the necessary information. Its intent
was to develop extensions to Fortran that provide support for high
performance programming on a wide variety of machines, including
massively parallel SIMD and MIMD systems and vector processors. From
its beginning, HPFF included most vendors delivering parallel machines,
a number of government laboratories, and many university research
groups. Public input was encouraged to the greatest extent possible.
The result of this project is this document, intended to be a language
specification portable from workstations to massively parallel
supercomputers while being able to express the algorithms needed to
achieve high performance on specific architectures.
paula@erc.msstate.edu
Thu Dec 8 16:17:11 CST 1994