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.
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.
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.
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.
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.
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.
Fox, G. C. 1987.Domain Decomposition in Distributed and Shared Memory Environments. Technical Report C3P-392, California Institute of Technology, Pasadena.
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.
Heath, M. T., ed. 1987.Hypercube Multiprocessors 1987. SIAM, Philadelphia.
Karp, A. H. 1987. Programming for parallelism.Computer, 20(5): 43–57.
Kennedy, K. 1980.Automatic Translation of Fortran Programs to Vector Form. Technical Report 476–029–4, Dept. of Mathematical Sciences, Rice University, Houston, Texas.
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.
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.
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.
Wolfe, M. J. 1982.Optimizing Supercompilers for Supercomputers. Ph.D. thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign.
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.
Author information
Authors and Affiliations
Additional information
Research supported by Intel.
Rights 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
Issue Date:
DOI: https://doi.org/10.1007/BF00128175