You are here: Home / Documentation / PIPS Technical Pages / HPFC: At a glance

HPFC: At a glance

HPFC at a glance

HPFC is a prototype High Performance Fortran Compiler which is being developed within the PIPS framework by Fabien COELHO at CRI, École des mines de Paris. It aims at testing new compilation techniques for distributed-memory parallel architectures. Funded by PARADIGME. URL: http://www.cri.ensmp.fr/pips/hpfc.html

Input language

  • Fortran 77
  • HPF static and dynamic mapping directives
  • prescriptive and descriptive mappings for arguments
  • HPF independent and new directives
  • private local, pure and io directives
  • assumes all sizes as known at compile time
  • arrays in commons can be distributed statically

Output

  • 2 programs: host for I/Os and SPMD node for computations
  • Fortran 77 + HPFC Runtime support + PVM 3

Implementation

  • data structures based on NEWGEN. Linear/C3 library for linear techniques.
  • 18,000 lines of ANSI C for the compiler (HPFC, a PIPS module)
  • 1,000 lines of shell and C for the driver and other utilities
  • 3,000 lines of m4/fortran for the runtime support library (expanded to +8,000)
  • PIPS as a whole is around 200,000 lines of code.

Standard Optimizations

  • run-time resolution to handle general cases.
  • reduced allocation of distributed arrays on nodes.
  • overlaps, partial shifts and reductions for block-distributed stride-1 aligned arrays.
  • simple copies for any aligned arrays are recognized.

Advanced Optimizations

Experiments

  • +100 small or medium size codes for non regression test.
  • SOR on a network of SUN workstations (abstract, paper).
  • wave propagation code from IFP (French Oil Institute) on the SEH/ETCA CM5.
  • matrix transpose on a DEC Alpha farm (see remappings).

Document Actions

February 2021 »
February
MoTuWeThFrSaSu
1234567
891011121314
15161718192021
22232425262728