Skip to main content

Compiling for Massively Parallel Machines

  • Conference paper
Code Generation — Concepts, Tools, Techniques

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

This article discusses techniques for compiling high-level, explicitly-parallel languages for massively parallel machines.

We present mechanisms for translating asynchronous as well as synchronous parallelism for both SIMD and MIMD machines. We show how the parallelism specified in a program is mapped onto the available processors and discuss an effective optimization that eliminates redundant synchronization points. Approaches for improving scheduling, load balancing, and co-location of data and processes are also presented. We conclude with important architectural principles required of parallel computers to support efficient, compiled programs.

Our discussion is based on the language Modula-2*, an extension of Modula-2 for writing highly parallel programs in a machine-independent, problem-oriented way. The novel attributes of Modula-2* are that programs are independent of the number of processors, independent of whether memory is shared or distributed, and independent of the control mode (SIMD or MIMD) of a parallel machine. Similar extensions could easily be included in other languages.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Akl SG. The Design and Analysis of Parallel Algorithms. Prentice Hall, Englewood Cliffs, New Jersey, 1989.

    Google Scholar 

  2. American National Standards Institute, Inc., Washington, D.C. ANSI, Programming Language Fortran (Fortran90), Draft S8, Version 114 (X3.91990), 1990.

    Google Scholar 

  3. Bal HE, Steiner JS, Tanenbaum AS. Programming languages for distributed computing systems. ACM Computing Surveys, 21 (3): 261–322, 1989.

    Article  Google Scholar 

  4. Banerjee U. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, Dordrecht, London, 1988.

    Book  Google Scholar 

  5. Fox G, Hiranandani S, Kennedy K, Koelbel C, Kremer U, Tseng CW, Wu MY. Fortran D language specification. Technical Report CRPCTR90079, Center for Research on Parallel Computation, Rice University, 1990.

    Google Scholar 

  6. Fox GC. What have we learnt from using real parallel machines to solve real problems. In Proc. of the Third Conf. on Hypercube Concurrent Computers and Applications, vol 2, pp 897–955, Pasadena, CA, 1988. ACM Press, New York.

    Google Scholar 

  7. Gibbons A, Rytter W. Efficient Parallel Algorithms. Cambridge University Press, 1988.

    Google Scholar 

  8. Heinz EA. Automatische Elimination von Synchronisationsbarrieren in synchronen FORALLs. Master’s thesis, University of Karlsruhe, Department of Informatics, 1991.

    Google Scholar 

  9. Hillis WD, Steele GL. Data parallel algorithms. Communications of the ACM, 29 (12): 1170–1183, 1986.

    Article  Google Scholar 

  10. Knobe K, Lukas JD, Steele GL. Data optimization: Allocation of arrays to reduce communication on SIMD machines. Journal of Parallel and Distributed Computing, 8 (2): 102–118, 1990.

    Article  Google Scholar 

  11. Knobe K, Natarajan V. Data optimization: Minimizing residual inter-processor data motion on SIMD machines. In Frontiers ‘80: The Third Symposium on the Frontiers of Massively Parallel Computation, College Park, University of Maryland, 1990.

    Google Scholar 

  12. Koelbel C, Mehrotra P. Supporting shared data structures and distributed memory architectures. In Proc. of the 2nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp 177–186, 1990.

    Google Scholar 

  13. Kretzschmar R. Ein Modula-2*-Compiler für die Connection Machine CM-2. Master’s thesis, University of Karlsruhe, Department of Informatics, 1991.

    Google Scholar 

  14. Lukowicz P. Code-Erzeugung für AJodula-2* für verschiedene Maschinenarchitekturen. Master’s thesis, University of Karlsruhe, Department of Informatics, 1992.

    Google Scholar 

  15. McGraw J, Skedzielewski S, Allan S, Oldehoeft R, Glauert J, Kirkham C, Noyce B, Thomas R. SISAL Language Reference Manual. Lawrence Livermore National Laboratory, 1985.

    Google Scholar 

  16. McGraw JR. The VAL language: Description and analysis. ACM Transactions on Programming Languages and Systems, 4 (1): 44–82, 1982.

    Article  MATH  Google Scholar 

  17. Mehrotra P, Rosendale JV. The BLAZE language: A parallel language for scientific programming. Parallel Computing, 5: 339–361, 1987.

    Article  MathSciNet  MATH  Google Scholar 

  18. Metcalf M, Reid J. Fortran 90 Explained. Oxford Science Publications, 1990.

    Google Scholar 

  19. Ousterhout JK, Scelza DA, Sindhu PS. Medusa: An experiment in distributed operating system structure. Communications of the ACM, 23 (2): 92205, 1980.

    Article  Google Scholar 

  20. Polychronopoulos CD. Parallel Programming and Compilers. Kluwer Academic Publishers, Boston, Dordrecht, London, 1989.

    Google Scholar 

  21. Prentice Hall, Englewood Cliffs, New Jersey. INMOS Limited: Occam Programming Manual, 1984.

    Google Scholar 

  22. Rogers AM. Compiling for locality of reference. Technical Report TR 91–1195, Department of Computer Science, Cornell University, 1991.

    Google Scholar 

  23. Rosing M, Schnabel R, Weaver R. DINO: Summary and example. In Proc. of the Third Conf. on Hypercube Concurrent Computers and Applications, pp 472–481, Pasadena, CA, 1988. ACM Press, New York.

    Google Scholar 

  24. Sankoff D, (eds) JBK. Time Warps, String Edits, and Macromolecules: The Theory and Practice of Sequence Comparison. Addison-Wesley, Reading, Mass., 1983.

    Google Scholar 

  25. Thinking Machines Corporation, Cambridge, Massachusetts. *Lisp Reference Manual, Version 5. 0, 1988.

    Google Scholar 

  26. Thinking Machines Corporation, Cambridge, Massachusetts. C* Programming Guide, Version 6. 0, 1990.

    Google Scholar 

  27. Tichy WF, Herter CG. Modula-2*: An extension of Modula-2 for highly parallel, portable programs. Technical Report No. 4/90, University of Karlsruhe, Department of Informatics, 1990.

    Google Scholar 

  28. Tichy WF, Philippsen M, Hatcher P. A critique of the programming language C. Technical Report No. 17/91, University of Karlsruhe, Department of Informatics, 1991.

    Google Scholar 

  29. U.S. Government, Ada Joint Program Office. ANSI/MIL-Std 1815 A, Reference Manual for the Ada Programming Language, 1983.

    Google Scholar 

  30. Weiss M. Strip mining on SIMD architectures. In 1991 ACM International Conference on Supercomputing, pp 234–243, Cologne, Germany, 1991.

    Google Scholar 

  31. Wolfe M. Optimizing Supercompilers for Supercomputers. Research Monographs in Parallel and Distributed Computing. Pitman, London, 1989.

    Google Scholar 

  32. Wolfe MJ, Tseng CW. The power test for data dependence. Technical Report CSE 90–015, Oregon Graduate Listitute, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag London

About this paper

Cite this paper

Philippsen, M., Tichy, W.F. (1992). Compiling for Massively Parallel Machines. In: Giegerich, R., Graham, S.L. (eds) Code Generation — Concepts, Tools, Techniques. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3501-2_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3501-2_6

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19757-7

  • Online ISBN: 978-1-4471-3501-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics