Automatic restructuring of Fortran programs for parallel execution

  • Constantine D. Polychronopoulos
Part III - Software And Languages
Part of the Lecture Notes in Computer Science book series (LNCS, volume 295)


With the widespread of high performance parallel processor computers, the need for powerful restructuring compilers and software environments for program development has become more pressing than ever before. In this paper we discuss the usefulness of automatic program restructuring, and present some well-known and some new program transformations that can be used to extract parallelism out of serial Fortran programs. Additional functions that could be carried out by a compiler are also discussed.


Parallel Machine Dependence Graph Data Dependence Parallel Loop Interprocessor Communication 
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.

8. References

  1. [1]
    A.V. Aho, R. Sethi, and J.D. Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, Reading, Massachusetts, 1986.Google Scholar
  2. [2]
    F.E. Allen and J. Cocke, “A Catalogue of Optimizing Transformations,” Design and Optimization of Compilers, R. Rustin, Ed. Prentice-Hall, Englewood Cliffs, N.J., 1972, pp. 1–30.Google Scholar
  3. [3]
    F.E. Allen, J.L. Carter, J. Fabri, J. Ferrante, W.H. Harrison, P.G. Loewner, and L.H. Trevillyan, “The Experimental Compiling System,” IBM J. Res. Dev. 24, 6, November 1980, pp. 695–715.Google Scholar
  4. [4]
    J.R. Allen and K. Kennedy, “PFC: A Program to Convert Fortran to Parallel Form,” Techn. Rept. MASC-TR82-6, Rice University, Houston, Texas, March 1982.Google Scholar
  5. [5]
    Alliant Computer Systems Corp., “FX/Series Architecture Manual,” Acton, Massachusetts, 1985Google Scholar
  6. [6]
    American National Standards Institute, American National Standard for Information Systems. Programming Language Fortran S8 (X3.9-198x). Revision of X3.9-1978, Draft S8, Version 99, ANSI, New York, April 1986.Google Scholar
  7. [7]
    U. Banerjee, “Speedup of Ordinary Programs,” Ph.D. Thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-79-989, October 1979.Google Scholar
  8. [8]
    B. Brode, “Precompilation of Fortran Programs to Facilitate Array Processing,” Computer 14, 9, September 1981, pp. 46–51.Google Scholar
  9. [9]
    S. Chen, “Large-scale and High-speed Multiprocessor System for Scientific Applications — Cray-X-MP-2 Series,” Proc. of NATO Advanced Research Workshop on High Speed Computing, Kawalik (Editor), pp. 59–67, June 1983.Google Scholar
  10. [10]
    “Multitasking User Guide,” Cray Computer Systems Technical Note, SN-0222, January, 1985.Google Scholar
  11. [11]
    R.G. Cytron, “Doacross: Beyond Vectorization for Multiprocessors (Extended Abstract),” Proceedings of the 1986 International Conference on Parallel Processing, St. Charles, IL, pp. 836–844, August, 1986.Google Scholar
  12. [12]
    J. Davies, C. Huson, T. Macke, B. Leasure, and M. Wolfe, “The KAP/205: An Advanced Source-to-Source Vectorizer for the Cyber 205 Supercomputer,” Proceedings of the 1986 International Conference on Parallel Processing, St. Charles, Illinois, August, 1986.Google Scholar
  13. [13]
    J. R. Beckman Davies, “Parallel Loop Constructs for Multiprocessors,” M.S. Thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-81-1070, May, 1981.Google Scholar
  14. [14]
    J. J. Dongarra, “Comparison of the CRAY X-MP-4, Fujitsu VP-200, and Hitachi S-810/20: An Argonne Perspective,” Argonne National Laboratory, ANL-85-19, October, 1985.Google Scholar
  15. [15]
    K. Kennedy, “Automatic Vectorization of Fortran Programs to Vector Form,” Technical Report, Rice University, Houston, TX, October, 1980.Google Scholar
  16. [16]
    D.J. Kuck, R.H. Kuhn, B. Leasure, and M. Wolfe, “The Structure of an Advanced Vectorizer for Pipelined Processors,” Fourth International Computer Software and Applications Conference, October, 1980.Google Scholar
  17. [17]
    D.J. Kuck, R. Kuhn, D. Padua, B. Leasure, and M. Wolfe, “Dependence Graphs and Compiler Optimizations,” Proceedings of the 8-th ACM Symposium on Principles of Programming Languages, pp. 207–218, January 1981.Google Scholar
  18. [18]
    D. J. Kuck, E. S. Davidson, D. H. Lawrie, and A.H. Sameh, “Parallel Supercomputing Today and the Cedar Approach,” Science 231, 4740 February 28, 1986, pp. 967–974.Google Scholar
  19. [19]
    D.J. Kuck, The Structure of Computers and Computations, Volume 1, John Wiley and Sons, New York, 1978.Google Scholar
  20. [20]
    D.J. Kuck et. al., “The Effects of Program Restructuring, Algorithm Change and Architecture Choice on Program Performance,” International Conference on Parallel Processing, August, 1984.Google Scholar
  21. [21]
    P. Mehrotra and J. Van Rosendale, “The Blaze Language: A Parallel Language for Scientific Programming,” Rep. 85-29, Institute for Computer Applications in Science and Engineering, NASA Langley Research Center, Hampton, Va., May 1985.Google Scholar
  22. [22]
    K. Miura and K. Uchida, “Facom Vector Processor VP-100/VP-200,” High Speed Computation, NATO ASI Series, Vol. F7, J.S. Kowalik Ed., Springer-Verlag, New York, 1984.Google Scholar
  23. [23]
    S. Nagashima, Y. Inagami, T. Odaka, and S. Kawabe, “Design Consideration for a High-Speed Vector Processor: The Hitachi S-810,” Proceedings of the IEEE International Conference on Computer Design: VLSI in Computers, ICCD 84, IEEE Press, New York, 1984.Google Scholar
  24. [24]
    D.A. Padua Haiek, “Multiprocessors: Discussions of Some Theoretical and Practical Problems,” Ph.D. Thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-79-990, November 1979.Google Scholar
  25. [25]
    D.A. Padua, and M. Wolfe, “Advanced Compiler Optimizations for Supercomputers,” Communications of the ACM, Vol. 29, No. 12, pp. 1184–1201, December 1986.Google Scholar
  26. [26]
    C. D. Polychronopoulos and U. Banerjee, “Processor Allocation for Horizontal and Vertical Parallelism and Related Speedup Bounds,” IEEE Transactions on Computers, Special Issue on Parallel and Distributed Computing, Vol. C-36, No. 4 April, 1987.Google Scholar
  27. [27]
    C. D. Polychronopoulos and D. J. Kuck, “Guided Self-Scheduling: A Practical Scheduling Scheme for Parallel Supercomputers,” to appear IEEE Transactions on Computers, Special Issue on Supercomputing, December, 1987.Google Scholar
  28. [28]
    C. D. Polychronopoulos, “On Advanced Compiler Optimizations for Parallel Computers,” Proceedings of the International Conference on Supercomputing, (Athens, Greece, June 8–12, 1987), E. Houstis, T. Papatheodorou, and C.D. Polychronopoulos Ed., Springer-Verlag, New York, 1987.Google Scholar
  29. [29]
    C. D. Polychronopoulos, “Loop Coalescing: A Compiler Transformation for Parallel Machines,” Proceedings of the 1987 International Conference on Parallel Processing, St. Charles, Illinois, August, 1987.Google Scholar
  30. [30]
    M. J. Wolfe, “Optimizing Supercompilers for Supercomputers,” Ph.D. Thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCCDCS-R-82-1105, 1982.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Constantine D. Polychronopoulos
    • 1
  1. 1.Center for Supercomputing Research and Development and Department of Electrical and Computer EngineeringUniversity of Illinois at Urbana-ChampaignUrbanaUSA

Personalised recommendations