Advertisement

Parallelizing compilers: what can be achieved?

  • Michèle Dion
  • Jean-Laurent Philippe
  • Yves Robert
Compilers and Data Parallel Structures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 797)

Abstract

We discuss automatic parallelization techniques that take a sequential program as input and produce executable code for massively parallel distributed memory machines. Target programming style is SPMD dataparallel. Target language is High Performance Fortran. We review the whole design trajectory: data dependence extraction, scheduling and mapping onto virtual processors, code generation for execution on physical processors. With concrete examples we explain all the difficulties we have to face. We show that fully automatic parallelization can be achieved for simple computational kernels arising from scientific applications, namely loop nests programs with uniform or affine dependences.

Keywords

Parallel Machine Total Execution Time Task System Communication Graph Design Trajectory 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Jennifer M. Anderson and Monica S. Lam. Global optimizations for parallelism and locality on scalable parallel machines. ACM Sigplan Notices, 28(6):112–125, June 1993.Google Scholar
  2. 2.
    Utpal Banerjee. An introduction to a formal theory of dependence analysis. The Journal of Supercomputing, 2:133–149, 1988.Google Scholar
  3. 3.
    Thomas Brandes. Adaptor language reference manuel — version 1.0. Technical report, German National Institute for Computer Science, 1993.Google Scholar
  4. 4.
    Thomas Brandes. Adaptor the distributed array library — version 1.0. Technical report, German National Research Institute for Computer Science, 1993.Google Scholar
  5. 5.
    Thomas Brandes. Adaptor users guide. Technical report, German National Research Institute for Computer Science, 1993.Google Scholar
  6. 6.
    Alain Darte, Tanguy Risset, and Yves Robert. Loop nest scheduling and transformations. In J.J. Dongarra and B. Tourancheau, editors, Environments and Tools for Parallel Scientific Computing, volume 6 of Advances in Parallel Computing, pages 309–332. North Holland, 1993.Google Scholar
  7. 7.
    Alain Darte and Yves Robert. A graph-theoretic approach to the alignment problem. Technical Report 93-20, Laboratoire de l'Informatique du Parallélisme, Ecole Normale Supérieure de Lyon, July 1993. To appear in Parallel Processing Letters.Google Scholar
  8. 8.
    Alain Darte and Yves Robert. Mapping uniform loop nests onto distributed memory architectures. Technical Report 93-03, Laboratoire de l'Informatique du Parallélisme, Ecole Normale Supérieure de Lyon, January 1993. To appear in Parallel Computing.Google Scholar
  9. 9.
    Michèle Dion, Jean-Laurent Philippe, and Yves Robert. Parallelizing compilers: what can be achieved ? Technical report, Laboratoire de l'Informatique du Parallélisme, Ecole Normale Supérieure de Lyon, February 1994.Google Scholar
  10. 10.
    Paul Feautrier. Dataflow analysis of array and scalar references. Int. J. Parallel Programming, 20(1):23–51, 1991.Google Scholar
  11. 11.
    Paul Feautrier. Some efficient solutions to the affine scheduling problem, part i, onedimensional time. Technical Report 92-28, Laboratoire MASI, Université Pierre et Marie Curie, Paris, May 1992. to appear in Int. J. Parallel Programming.Google Scholar
  12. 12.
    Seema Hiranandani, Ken Kennedy, and Chau-Wen Tseng. Compiler optimizations for FORTRAN D on MIMD distributed-memory machines. In Supercomputing 91, pages 86–100. IEEE Computer Society Press, nov 1991.Google Scholar
  13. 13.
    C.H. Huang and P. Sadayappan. Communication-free hyperplane partitioning of nested loops. In Banerjee, Gelernter, Nicolau, and Padua, editors, Languages and Compilers for Parallel Computing, volume 589 of Lecture Notes in Computer Science, pages 186–200. Springer Verlag, 1991.Google Scholar
  14. 14.
    Charles H. Koelbel, David B. Loveman, Robert S. Schreiber, Guy L. Steele Jr., and Mary E. Zosel. The High Performance Fortran Handbook. The MIT Press, 1994.Google Scholar
  15. 15.
    Leslie Lamport. The parallel execution of do loops. Communications of the ACM, 17(2):83–93, feb 1974.CrossRefGoogle Scholar
  16. 16.
    Jingke Li and Marina Chen. The data alignment phase in compiling programs for distributed memory machines. Journal Parallel Distributed Computing, 13:213–221, 1991.Google Scholar
  17. 17.
    J.K. Peir and R. Cytron. Minimum distance: a method for partitioning recurrences for multiprocessors. IEEE Transactions on Computers, 38(8):1203–1211, aug 1989.Google Scholar
  18. 18.
    Chau-Wen Tseng. An optimizing fortran D compiler for MIMD distributed-memory machines. Technical report, Rice University, 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Michèle Dion
    • 1
  • Jean-Laurent Philippe
    • 2
  • Yves Robert
    • 1
  1. 1.Laboratoire LIP, CNRS (U.R.A. n∘ 1398)Ecole Normale Supérieure de LyonLyon Cedex 07France
  2. 2.Société Archipel PAE des GlaisinsAnnecy-le-VieuxFrance

Personalised recommendations