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.htmlInput language
- Fortran 77
- HPF static and dynamic mapping directives
- prescriptive and descriptive mappings for arguments
- HPF
independent
andnew
directives - private
local
,pure
andio
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
- for I/O-related communications (abstract, paper)
- for array remappings (abstract, paper)
- and more linear algebra-based techniques to come (abstract, paper).
Experiments
Document Actions