Compiling HPF for Distributed Memory MIMD Computers

  • Zeki Bozkus
  • Alok Choudhary
  • Tomasz Haupt
  • Geoffrey Fox
  • Sanjay Ranka


This paper describes the design of a High Performance Fortran (HPF/Fortran 90D) compiler, a source-to-source translator for distributed memory systems. HPF is a data parallel language with compiler directives that enable users to specify data alignment and distribution. This paper presents a systematic methodology to process HPF. Furthermore, techniques for data and computation partitioning, communication detection and generation, and the run-time support for the compiler are discussed. Finally, initial performance results for the compiler are presented which show that the code produced by the compiler is portable, yet efficient. We believe that the methodology used to process data distribution, computation partitioning, communication system design and the overall compiler design can also be used by other HPF compiler implementors.


Communication Detection Array Element Collective Communication Intrinsic Function Communication Primitive 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    G. C. Fox, S. Hiranadani, K. Kenndy, C. Koelbel, U. Kremer, C. Tseng, and M. Wu. Fortran D Language Specification, Technical report, Rice and Syracuse University, 1992.Google Scholar
  2. [2]
    High Performance Fortran Forum. High performance fortran language specification version 1.0. Draft, Also available as technical report CRPC-TR92225 from the Center for Research on Parallel Computation, Rice University., Jan. 1993.Google Scholar
  3. [3]
    Z. Bozkus et al. Compiling the FORALL statement on MIMD parallel computers. Technical Report SCCS-389, Northeast Parallel Architectures Center, July 1992.Google Scholar
  4. [4]
    G. Fox. The architecture of problems and portable parallel software systems. Technical Report SCCS-78b, Syracuse University, 1991.Google Scholar
  5. [5]
    Z. Bozkus et al. Compiling Distribution Directives in a Fortran 90D Compiler. Technical Report SCCS-388, Northeast Parallel Architectures Center, July 1992.Google Scholar
  6. [6]
    H. Zima, H. Bast, and M. Gerndt. Superb: A tool for semi Automatic SIMD/MIMD Parallegation. Parallel Computing, January 1988.Google Scholar
  7. [7]
    D. Callahan and K. Kennedy. Compiling programs for Distributed Memory Multiprocessors. The Journal of Supercomputing, pages 171–207, 1988.Google Scholar
  8. [8]
    M. Wu and G. Fox et al. Compiling Fortran 90 programs for distributed memory MIMD paralelel computers. Technical Report SCCS-88, Northeast Parallel Architectures Center, May 1991.Google Scholar
  9. [9]
    G. C. Fox, M.A. Johnson, G.A. Lyzenga, S. W. Otto, J.K. Salmon, and D. W. Walker. In Solving Problems on Concurent Processors, volume 1-2. Prentice Hall, May 1988.Google Scholar
  10. [10]
    K. Knobe, J. D. Lukas, and G. L. Steele. Data optimization: Allocation of arrays to reduce communication on SIMD machines. Journal of Parallel and Distributed Computing, pages 102–118, Feb 1990.Google Scholar
  11. [11]
    J. Li and M. Chen. The data alignment phase in compiling programs for distributed-memory machines. Journal of Parallel and Distributed Computing, pages 213–221, Oct 1991.Google Scholar
  12. [12]
    S. Chatterjee, J.R. Gilbert, R. Schreiber, and S.H Tseng. Automatic Array Alignment in Data-Parallel Programs. Twentieth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, January 1993.Google Scholar
  13. [13]
    M. Gerndt. Updating distributed variables in local computations. Concurrency: Practice and Experience, September 1990.Google Scholar
  14. [14]
    C. Koelbel and P. Mehrotra. Supporting Compiling Global Name-Space Parallel Loops for Distributed Execution. IEEE Transactions on Parallel and Distributed Systems, October 1991.Google Scholar
  15. [15]
    H. Berryman J. Saltz, J. Wu and S. Hiranandani. Distributed Memory Compiler Design for Sparse Problems. Interim Report ICASE, NASA Langley Research Center, 1991.Google Scholar
  16. [16]
    J. Li and M. Chen. Compiling Communication-Efficient Programs for Massively Parallel Machines. IEEE Transactions on Parallel and Distributed Systems, pages 361–376, July 1991.Google Scholar
  17. [17]
    R. Das, J. Saltz, and H. Berryman. A Manual For PARTI Runtime Primitives. NASA, JCASE Interim Report 17, May 1991.Google Scholar
  18. [18]
    C. Koelbel, P. Mehrotra, and J. V. Rosendale. Supporting Shared Data Structures on Distributed Memory Architectures. PPoPP, March 1990.Google Scholar
  19. [19]
    A.V. Aho, R. Sethi, and J.D Ullman. Compilers Principles, Techniques and Tools. March 1988.Google Scholar
  20. [20]
    I. Ahmad, R. Bordawekar, Z. Bozkus, A. Choudhary, G. Fox, K. Parasuram, R. Ponnusamy, S. Ranka, and R. Thakur. Fortran 90D Intrinsic Functions on Distributed Memory Machines: Implementation and Scalability. Technical Report SCCS-256, Northeast Parallel Architectures Center, March 1992.Google Scholar
  21. [21]
    S. Hiranandani, K. Kennedy, and C. Tseng. Compiler optimization for For tran D on MIMD distributed-memory machines. Proc. Supercomputing’91, Nov 1991.Google Scholar
  22. [22]
    R. Mirchandaney J. Saltz, K. Crowley and H. Berryman. Run-time scheduling and execution of loops on message passing machines. Journal of Parallel and Distributed Computing, December 1991.Google Scholar
  23. [23]
    ParaSoft Corp. Express Fortran refernce guide Version 3.0, 1990.Google Scholar
  24. [24]
    A. Beguelin, J. Dongarra, A. Geist, R. Mancheck, and V. Sunderam. A Users Guide to PVM Parallel Virtual Machine. Technical Report ORNL/TM-11826, Oak Ridge National Laboratory, July 1991.Google Scholar
  25. [25]
    A. G. Mohamed, G. Fox, G. V. Laszewski, M. Parashar, T. Haupt, K. Mills, Y. Lu, N. Lin, and N. Yeh. Application Benchmark Set for Fortran-D and High Performance Fortran. Technical Report SCCS-327, Northeast Parallel Architectures Center, May 1992.Google Scholar
  26. [26]
    G. Fox T. Haupt S. Ranka Z. Bozkus, A. Choudhary and Min-You Wu. Compiling Fortran 90D/HPF for Distributed Memory MIMD Computers. Journal of Parallel and Distributed Computing, page appear, 1994.Google Scholar
  27. [27]
    S. Hiranandani, K. Kennedy, and C.W. Tseng. Compiler support for machine-indepentet Parallel Programming in Fortran D. Compiler and Runtime Software for Scalable Multiprocessors, 1991.Google Scholar
  28. [28]
    Michael Quinn, Philip Hatcher, and Karen Jourdenais. Compiling C* Programs for a Hypercube Multicomputer. Parallel Computing Laboratory, University of New Hampshire, PCL-87-12, December 1987.Google Scholar
  29. [29]
    Philip Hatcher, Anthony Lapadula, Robert Jones, Michael Quinn, and Ray Anderson. A Production-Quality C* Compiler for Hypercube Multi-computers. Third ACM SIGPLAN symposium on PPOPP, 26:73–82, July 1991.CrossRefGoogle Scholar
  30. [30]
    J.H Merlin. Techniques for the Automatic Parallelisation of ‘Distributed Fortran 90’. Technical Report SNARC 92-02, Southampton Novel Architecture Research Centre, 1992.Google Scholar
  31. [31]
    T. Brandes. ADAPTOR Language Reference Manual. Technical Report ADAPTOR-3, German National Research Center for Computer Science, 1992.Google Scholar
  32. [32]
    M. Chen and J.J Wu. Optimizing FORTRAN-90 Programs for Data Motion on Massivelly Parallel Systems. Technical Report YALEU/DCS/TR-882, Yale University, Dep. of Comp. Sci., 1992.Google Scholar
  33. [33]
    H. Berryman J. Saltz and J. Wu. Multiprocessors and run-time compilation. Concurrency: Practice and Experience, December 1991.Google Scholar
  34. [34]
    M. Gupta and P. Banerjee. Demonstration of Automatic Data Partitioning Techniques for Parallelizing Compilers on Multicomputers. IEEE: Transaction on Parallel and Distributed Systems, pages 179–193, March 1992.Google Scholar
  35. [35]
    M. Gupta. Automatic Data Partitioning on Distributed Memory Multi-computers. Technical Report PhD thesis, University of illinois at Urbana-Champaign, 1992.Google Scholar

Copyright information

© Springer Science+Business Media New York 1994

Authors and Affiliations

  • Zeki Bozkus
    • 3
  • Alok Choudhary
    • 1
  • Tomasz Haupt
    • 3
  • Geoffrey Fox
    • 3
  • Sanjay Ranka
    • 2
  1. 1.Computer Engineering Dept.Syracuse UniversitySyracuseUSA
  2. 2.Computer Science Dept.Syracuse UniversitySyracuseUSA
  3. 3.Northeast Parallel Architectures CenterSyracuse UniversitySyracuseUSA

Personalised recommendations