An HPF Compiler for the IBM SP2

We describe pHPF, an research prototype HPF compiler for the IBM SP series parallel machines. The compiler accepts as input Fortran 90 and Fortran 77 programs, augmented with HPF directives; sequential loops are automatically parallelized. The compiler supports symbolic analysis of expressions. This allows parameters such as the number of processors to be unknown at compile-time without significantly affecting performance. Communication schedules and computation guards are generated in a parameterized form at compile-time. Several novel optimizations and improved versions of well-known optimizations have been implemented in pHPF to exploit parallelism and reduce communication costs. These optimizations include elimination of redundant communication using data-availability analysis; using collective communication; new techniques for mapping scalar variables; coarse-grain wavefronting; and communication reduction in multi-dimensional shift communications. We present experimental results for some well-known benchmark routines. The results show the effectiveness of the compiler in generating efficient code for HPF programs.

[1]  Vincent Schuster PGHPF from The Portland Group , 1994, IEEE Parallel & Distributed Technology: Systems & Applications.

[2]  Prithviraj Banerjee,et al.  Automating Parallelization of Regular Computations for Distributed-Memory , 1993, ICPP.

[3]  Edith Schonberg,et al.  A Unified Data-Flow Framework for Optimizing Communication , 1994, LCPC.

[4]  Charles Koelbel,et al.  Compiling Global Name-Space Parallel Loops for Distributed Execution , 1991, IEEE Trans. Parallel Distributed Syst..

[5]  Ken Kennedy,et al.  GIVE-N-TAKE—a balanced code placement framework , 1994, PLDI '94.

[6]  Geoffrey C. Fox,et al.  A Compilation Approach for Fortran 90D/HPF Compilers on Distributed Memory MIMD Computers , 1993 .

[7]  Monica S. Lam,et al.  An Overview of a Compiler for Scalable Parallel Machines , 1993, LCPC.

[8]  Thomas Brandes Adaptor: A Compilation System for Data Parallel Fortran Programs , 1994, Automatic Parallelization.

[9]  Marina C. Chen,et al.  Compiling Communication-Efficient Programs for Massively Parallel Machines , 1991, IEEE Trans. Parallel Distributed Syst..

[10]  Rajeev Thakur,et al.  Compiler and runtime support for out-of-core HPF programs , 1994, ICS '94.

[11]  John A. Chandy,et al.  The Paradigm Compiler for Distributed-Memory Multicomputers , 1995, Computer.

[12]  John M. Levesque Applied Parallel Research's xHPF system , 1994, IEEE Parallel & Distributed Technology: Systems & Applications.

[13]  Ken Kennedy,et al.  Compiling Fortran D for MIMD distributed-memory machines , 1992, CACM.

[14]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[15]  Guy L. Steele,et al.  The High Performance Fortran Handbook , 1993 .

[16]  Hans P. Zima,et al.  Compiling for distributed-memory systems , 1993 .

[17]  Anne Rogers,et al.  Process decomposition through locality of reference , 1989, PLDI '89.

[18]  Edith Schonberg,et al.  Visualizing the execution of High Performance Fortran (HPF) programs , 1995, Proceedings of 9th International Parallel Processing Symposium.

[19]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[20]  Manish Gupta,et al.  A methodology for high-level synthesis of communication on multicomputers , 1992, ICS '92.