Skip to main content

Parallelizing a C Dialect for distributed memory MIMD machines

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 757))

  • 129 Accesses

Abstract

The rapid development of parallel architectures calls for solving the problem of programs portability (between parallel machines as well as between serial and parallel machines). This need is further emphasized due to the difficulty in the efficient use of current parallel languages and the existence of a large body of code written for serial machines.

The Octi parallelizer compiles a serial input program, written in C, into a number of subprograms to be run in parallel on distributed memory MIMD machines. The system provides a language extension for specifying data distribution among the processors. The paper also describes the parallelization algorithm, some of the new optimization techniques, and a method for automatic data distribution.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Allen and K. Kennedy. Automatic translation of FORTRAN programs to vector form. ACM Trans. on Programming Languages and Systems, 9(4):491–542, October 1987.

    Google Scholar 

  2. M. Brode. Precompilation of fortran programs to facilitate array processing. Computer, 14(9):46–51, September 1981.

    Google Scholar 

  3. D. Callahan and K. Kennedy. Compiling programs for distributed-memory multiprocessors. The Journal of Supercomputing, 2(2):151–169, October 1988.

    Google Scholar 

  4. K. D. Cooper and K. Kennedy. Interprocedural side-effect analysis in linear time. In Proceedings — Fifth Annual ACM Symposium on Principles of Programming Languages, pages 49–59, 1989.

    Google Scholar 

  5. G. Fox, S. Hiranandani, K. Kennedy, Ch. Koelbel, U. Kremer, Ch. Tseng, and M. Wu. Fortran D language specification. Technical Report TR90-141, Dept. of Computer Science, Rice University, December 1990.

    Google Scholar 

  6. M. D. Guzzi, D. A. Padua, J. P. Hoeflinger, and D. H. Lawrie. Cedar fortran and other vector and parallel fortran dialects. Journal of Supercomputing, pages 37–62, March 1990.

    Google Scholar 

  7. S. Hiranandani, K. Kennedy, and C. Tseng. Compiler optimizations for fortran D on MIMD distributed machines. Technical Report TR91-156, Dept. of Computer Science, Rice University, April 1991.

    Google Scholar 

  8. C. Huson, T. Macke, J. R. Davies, M. J. Wolfe, and B. Leasure. The kap/205: An advanceed source-to-source vectorizer for the cyber 205 supercomputer. In International Conference on Parallel Processing, pages 827–832, 1986.

    Google Scholar 

  9. J. Katzenelson. Introduction to enhanced c (ec). Software Practice and Experience, 13:551–576, 1983.

    Google Scholar 

  10. D. Klappholz, A. Kallis, and X. Kong. Refined C: an update. In Second Workshop on Languages and Compilers for Parallel Processing, August 1989.

    Google Scholar 

  11. C. Koelbel, P. Mehrotra, and J. Van Rosendale. Supporting shared data structures on distributed memory architectures. In Second ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 177–186. ACM, March 1990.

    Google Scholar 

  12. D. Kuck, R. H. Kuhn, B. Leasure, and M. Wolfe. The structure of an advanced vectorizer for pipelined processors. In Proc. of COMPSAC 80, The 4th Int'l Computer Software and Applications Conf., pages 709–715, October 28–31 1980.

    Google Scholar 

  13. L. F. Ortiz, R. Y. Pinter, and S. S. Pinter. An array language for data parallelism: Definition, compilation, and applications. The Journal of Supercomputing, 5:7–29, 1991.

    Google Scholar 

  14. A. Rogers and K. Pingali. Process decomposition through locality of reference. In SIGPLAN'89 Conference on Programming Language Design and Implementation, pages 69–80. ACM, 1989.

    Google Scholar 

  15. M. Wolfe. The Tiny loop restrcuturing research tool. In Proceedings of the 1991 International Conference on Parallel Processing, Vol. II, pages 46–47, August 1991.

    Google Scholar 

  16. H. Zima, H. J. Bast, and M. Gerndt. Superb: A tool for semi-automatic mimd/simd parallelization. Parallel Computing, 6:1–18, 1988.

    Google Scholar 

  17. H. Zima, P. Brezany, B. Chapman, P. Mehrotra, and A. Schwald. Vienna Fortran — a language specification version 1.1. Technical Report NASA Contractor Report 189629, NASA Langley Research Center, Hampton, Virginia 23665, March 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lempel, O., Pinter, S., Turiel, E. (1993). Parallelizing a C Dialect for distributed memory MIMD machines. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_59

Download citation

  • DOI: https://doi.org/10.1007/3-540-57502-2_59

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57502-3

  • Online ISBN: 978-3-540-48201-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics