Skip to main content
Log in

Compiling programs for distributed-memory multiprocessors

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  • 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 

  • 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 

  • 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.).

  • 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 

  • 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.

  • 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 

  • Cytron, R. 1986. Doacross: Beyond vectorization for multiprocessors. In Proceedings of the 1986 International Conference on Parallel Processing.

  • 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 

  • Fox, G. C. 1987.Domain Decomposition in Distributed and Shared Memory Environments. Technical Report C3P-392, California Institute of Technology, Pasadena.

    Google Scholar 

  • 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 

  • Heath, M. T., ed. 1987.Hypercube Multiprocessors 1987. SIAM, Philadelphia.

    Google Scholar 

  • Karp, A. H. 1987. Programming for parallelism.Computer, 20(5): 43–57.

    Google Scholar 

  • 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 

  • 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.

  • Kuck, D. J. 1978.The Structure of Computers and Computation, Vol. 1. Wiley, New York.

    Google Scholar 

  • 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.).

  • 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.

  • Padua, D. A., and Wolfe, M. J. 1986. Advanced compiler optimizations for supercomputers.Communications of the ACM, 29(12): 1184–1201.

    Google Scholar 

  • Rose, J., and Steele, G. 1987.C *:An Extended C Language for Data Parallel Programming. Technical Report PL87-5, Thinking Machines, Inc.

  • 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 

  • Wolfe, M. J. 1982.Optimizing Supercompilers for Supercomputers. Ph.D. thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign.

    Google Scholar 

  • 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 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Research supported by Intel.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Callahan, D., Kennedy, K. Compiling programs for distributed-memory multiprocessors. J Supercomput 2, 151–169 (1988). https://doi.org/10.1007/BF00128175

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00128175

Keywords

Navigation