HPFC at a glance
HPFC at a glanceHPFC 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.mines-paristech.fr/pips/hpfc.html
- Fortran 77
- HPF static and dynamic mapping directives
- prescriptive and descriptive mappings for arguments
- assumes all sizes as known at compile time
- arrays in commons can be distributed statically
- 2 programs: host for I/Os and SPMD node for computations
- Fortran 77 + HPFC Runtime support + PVM 3
- 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.
- 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.
- for I/O-related communications (abstract, paper)
- for array remappings (abstract, paper)
- and more linear algebra-based techniques to come (abstract, paper).