The Journal of Supercomputing

, Volume 2, Issue 2, pp 151–169

Compiling programs for distributed-memory multiprocessors

  • David Callahan
  • Ken Kennedy
Article

Abstract

We describe a new approach to programming distributed-memory computers. Rather than having each node in the system explicitly programmed, we derive an efficient message-passing program from a sequential shared-memory program annotated with directions on how elements of shared arrays are distributed to processors. This article describes one possible input language for describing distributions and then details the compilation process and the optimization necessary to generate an efficient program.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Allen, F. E., and Cocke, J. 1972. A catalogue of optimizing transformations. In Design and Optimization of Compilers, Prentice-Hall, Englewood Cliffs, N.J., pp. 1–30.Google Scholar
  2. Allen, R., and Kennedy, K. 1987. Automatic translation of FORTRAN programs to vector form.ACM Transactions on Programming Languages and Systems, 9(4): 491–542.Google Scholar
  3. Allen, J. R., Callahan, D., and Kennedy, K. 1987. Automatic decomposition of scientific programs for parallel execution. In Conference Record of the Fourteenth ACM Symposium on the Principles of Programming Languages (Munich, West Germany, Jan.).Google Scholar
  4. Allen, F., Burke, M., Charles, P., Cytron, R., and Ferrante, J. 1987. An overview of the PTRAN analysis system for multiprocessing. In Proceedings of the First International Conference on Supercomputing, Springer-Verlag, Athens, Greece.Google Scholar
  5. Callahan, D., Cooper, K., Hood, R., Kennedy, K., Torczon, L., and Warren, S. 1987. Parallel programming support in ParaScope. In Proceedings of the 1987 DFVLR Conference on Parallel Processing in Science and Engineering (Koln, West Germany, June). Available as Rice University, Dept. of Computer Science Technical Report TR87-59.Google Scholar
  6. Carriero, N., and Gelernter, D. 1985.The S/Net's Linda Kernel. Research Report YALEU/DCS/RR-383, Dept. of Computer Science, Yale University, Cambridge, Mass.Google Scholar
  7. Cytron, R. 1986. Doacross: Beyond vectorization for multiprocessors. In Proceedings of the 1986 International Conference on Parallel Processing.Google Scholar
  8. Fox, G. C. 1985.A Review of Automatic Load Balancing and Decomposition Methods for the Hypercube. Technical Report C3P-385, California Institute of Technology, Pasadena.Google Scholar
  9. Fox, G. C. 1987.Domain Decomposition in Distributed and Shared Memory Environments. Technical Report C3P-392, California Institute of Technology, Pasadena.Google Scholar
  10. Fox, G. C., and Otto, S. W. 1986.Concurrent Computation and the Theory of Complex Systems. Technical Report CALT-68–1343, California Institute of Technology, Pasadena.Google Scholar
  11. Heath, M. T., ed. 1987.Hypercube Multiprocessors 1987. SIAM, Philadelphia.Google Scholar
  12. Karp, A. H. 1987. Programming for parallelism.Computer, 20(5): 43–57.Google Scholar
  13. Kennedy, K. 1980.Automatic Translation of Fortran Programs to Vector Form. Technical Report 476–029–4, Dept. of Mathematical Sciences, Rice University, Houston, Texas.Google Scholar
  14. Koelbel, C., Mehrotra, P., and Rosendale, J. V. 1987. Semi-automatic domain decomposition in BLAZE. In Proceedings of the 1987 International Conference on Parallel Processing, S.K. Sahni, ed. (Aug.), pp. 521–524.Google Scholar
  15. Kuck, D. J. 1978.The Structure of Computers and Computation, Vol. 1. Wiley, New York.Google Scholar
  16. Kuck, D. J., Kuhn, R. H., Leasure, B., Padua, D. A. and Wolfe, M. 1983. Compiler transformation of dependence graphs. In Conference Record of the Tenth ACM Symposium on the Principles of Programming Languages, (Williamsburg, Va., Jan.).Google Scholar
  17. Mandell, D. 1987. Experiences and results multitasking a hydrodynamics code on global and local memory machines. In Proceedings of the 1987 International Conference on Parallel Processing, S.K. Sahni, ed. (Aug.), pp. 415–420.Google Scholar
  18. Padua, D. A., and Wolfe, M. J. 1986. Advanced compiler optimizations for supercomputers.Communications of the ACM, 29(12): 1184–1201.Google Scholar
  19. Rose, J., and Steele, G. 1987.C *:An Extended C Language for Data Parallel Programming. Technical Report PL87-5, Thinking Machines, Inc.Google Scholar
  20. Rosing, M., and Schnabel, R. B., 1988.An Overview of DINO—A New Language for Numerical Computation on Distributed Memory Multiprocessors. Technical Report TR CU-CS-385–88, Dept. of Computer Science, University of Colorado, Boulder.Google Scholar
  21. Wolfe, M. J. 1982.Optimizing Supercompilers for Supercomputers. Ph.D. thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign.Google Scholar
  22. Zima, H., Bast, H., and Gerndt, M. 1988. Superb: A tool for semi-automatic MIMD/SIMD parallelization. In Parallel Computing, Vol. 6, North-Holland, Amsterdam, pp. 1–18.Google Scholar

Copyright information

© Kluwer Academic Publishers 1988

Authors and Affiliations

  • David Callahan
    • 1
  • Ken Kennedy
    • 1
  1. 1.Department of Computer ScienceRice UniversityHoustonUSA

Personalised recommendations