NCSA Home
Contact Us | Intranet | Search

High Performance Fortran (HPF) Compiler

High Performance Fortran (HPF) Compiler

  1. Brief History
  2. The HPF Language
  3. HPF on NCSA HPC Systems
  4. Documentation and Online Resources

1. Brief History

In November 1991, Digital Equipment Corporation (DEC) organized a birds-of-a-feather meeting at Supercomputing '91 that lead to the formation of the High Performance Fortran Forum (HPFF) in January 1992. The HPFF working group, comprising about 40 members from academia, industry, and government, met regularly throughout 1992 and early 1993. The HPF language specification, version 1.0 was published in May 1993, and version 1.1 in November 1994.

2. The HPF Language

High Performance Fortran (HPF) is a data parallel language extension to Fortran 90 which provides a portable programming interface for a wide variety of architectures.

In addition to Fortran 90 features, HPF has directives that can be used to optimize performance. They allow you to specify the distribution of data among processors, the alignment of data objects to one another, and to assert the independence of loop iterations. An HPF Compiler interprets the Fortran code and HPF directives to generate code which automatically uses multiple processors in shared- and distributed-memory parallel systems. HPF adds a few new language features, including the FORALL statement, which allows a more concise expression of many complicated array assignments. It also adds the HPF Library, which provides optimized intrinsics for sorting, scanning and reduction operations on arrays. HPF's extrinsic procedures allow you to make calls to existing subroutines written using a message-passing paradigm or other programming styles.

3. HPF on the NCSA's Origin2000 Systems

The HPF compiler from Portland Group, Inc (PGI), called pghpf, version 2.4 is available along with associated profiler (pgprof) in the directory:

/usr/local/apps/pghpf

To use the PGI HPF compiler, add the following lines to the end of your .cshrc file:

setenv PGI /usr/local/apps/pghpf
set path=($PGI/sgi/bin $path)
setenv MANPATH "${MANPATH}:${PGI}/man"
To run a pghpf job:
  • Using command line options:

    a.out -pghpf -np n

  • Using environment variables:

    setenv PGHPF_NP n

    or

    setenv PGHPF_OPTS "-np n"

    Note: PGHPF_OPTS can also be used to set other PGHPF environment variables.

    Command line options over-ride environment variables and individual environment variables over-ride the PGHPF_OPTS environment variable.

    4. Documentation and Online Resources

  •