Skip to main content

Automatic parallelization in the polytope model

  • Chapter
  • First Online:
The Data Parallel Programming Model

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

Abstract

The aim of this paper is to explain the importance of polytope and polyhedra in automatic parallelization. We show that the semantics of parallel programs is best described geometrically, as properties of sets of integral points in n-dimensional spaces, where n is related to the maximum nesting depth of DO loops. The needed properties translate nicely to properties of polyhedra, for which many algorithms have been designed for the needs of optimization and operation research. We show how these ideas apply to scheduling, placement and parallel code generation.

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. Saman P. Amarasinghe, Jennifer M. Anderson, Monica S. Lam, and Amy W. Lim. An overview of a compiler for scalable parallel machines. In Sixth Annual Workshop on Languages and Compilers for Parallel Computing, pages 253–272. Springer Verlag, LNCS 768, August 1993.

    Google Scholar 

  2. Corinne Ancourt and François Irigoin. Scanning polyhedra with DO loops. In Proc. third SIGPLAN Symp. on Principles and Practice of Parallel Programming, pages 39–50. ACM Press, April 1991.

    Google Scholar 

  3. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Mass, 1986.

    Google Scholar 

  4. A. J. Bernstein. Analysis of programs for parallel processing. IEEE Trans. on El. Computers, EC-15, 1966.

    Google Scholar 

  5. Thomas Brandes. The importance of direct dependences for automatic parallelization. In ACM Int. Conf. on Supercomputing, St Malo, France, July 1988.

    Google Scholar 

  6. Jean-François Collard, Denis Barthou, and Paul Feautrier. Fuzzy array dataflow analysis. In ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming. ACM, July 1995.

    Google Scholar 

  7. Patrick Le Goueslier d'Argence. Contribution à l'étude des probleèmes d'ordonnancement cycliques multidimensionnels. PhD thesis, Université Paris VI, December 1995.

    Google Scholar 

  8. G. B. Dantzig. Linear Programming and Extensions. Princeton University Press, 1963.

    Google Scholar 

  9. A. Darte. Techniques de parallélisation automatique de nids de boucles. PhD thesis, ENS Lyon, April 1993.

    Google Scholar 

  10. Alain Darte, Leonid Khachiyan, and Yves Robert. Linear scheduling is nearly optimal. Parallel Processing Letters, 1(2):73–81, 1991.

    Google Scholar 

  11. Michèle Dion and Yves Robert. Mapping affine loop nest: new results. In HPCN Conf. LNCS 919, 1995.

    Google Scholar 

  12. Alain Darte and Frédéric Vivien. Automatic parallelization based on multidimensional scheduling. Technical Report RR 94–24, LIP, 1994.

    Google Scholar 

  13. Paul Feautrier. Array expansion. In ACM Int. Conf. on Supercomputing, pages 429–441, 1988.

    Google Scholar 

  14. Paul Feautrier. Parametric integer programming. RAIRO Recherche Opérationnelle, 22:243–268, September 1988.

    Google Scholar 

  15. Paul Feautrier. Dataflow analysis of scalar and array references. Int. J. of Parallel Programming, 20(1):23–53, February 1991.

    Google Scholar 

  16. Paul Feautrier. Some efficient solutions to the affine scheduling problem, I, one dimensional time. Int. J. of Parallel Programming, 21(5):313–348, October 1992.

    Google Scholar 

  17. Paul Feautrier. Some efficient solutions to the affine scheduling problem, II, multidimensional time. Int. J. of Parallel Programming, 21(6):389–420, December 1992.

    Google Scholar 

  18. Paul Feautrier. Toward automatic distribution. Parallel Processing Letters, 4(3):233–244, 1994.

    Google Scholar 

  19. J. B. J. Fourier. Oeuvres de fourier, tome II. Gauthier-Villard, Paris, 1890.

    Google Scholar 

  20. R. E. Gomory. An algorithm for integer solutions to linear programs. In R. L. Graves and P. Wolfe, editors, Recent Advances in Math. Programming, chapter 34, pages 269–302. Mac-Graw Hill, New York, 1963.

    Google Scholar 

  21. François Irigoin. Partitionnement de boucles imbriquées, une technique d'optimisation pour les programmes scientifiques. PhD thesis, Université P. et M. Curie, Paris, June 1987.

    Google Scholar 

  22. François Irigoin and Rémi Triolet. Computing dependence direction vectors and dependence cones with linear systems. Technical Report CAI-87-E94, Ecole des Mines de Paris, 1987.

    Google Scholar 

  23. R. M. Karp, R. E. Miller, and S. Winograd. The organization of computations for uniform recurrence equations. Journal of the ACM, 14:563–590, 1967.

    Google Scholar 

  24. Wayne Kelly and William Pugh. Selecting affine mappings based on performance estimations. Parallel Processing Letters, 4(3):205–220, September 1994.

    Google Scholar 

  25. Leslie Lamport. The parallel execution of DO loops. CACM, 17:83–93, February 1974.

    Google Scholar 

  26. Arnauld Leservot. Analyse Interprocédurale du flot des données. PhD thesis, Université Paris VI, March 1996.

    Google Scholar 

  27. Lee-Chung Lu. A unified framework for systematic loop transformations. SIGPLAN Notices, 26:28–38, July 1991. 3rd ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming.

    Google Scholar 

  28. Michel Minoux. Programmation Mathématique, théorie et algorithmes. Dunod, Paris, 1983.

    Google Scholar 

  29. Robin Milner, Mads Tofte, and Robert Harper. The definition of Standard ML. The MIT Press, 1990.

    Google Scholar 

  30. William Pugh. The omega test: A fast and practical integer programming algorithm for dependence analysis. In Supercomputing, 1991.

    Google Scholar 

  31. William Pugh. Uniform techniques for loop optimization. ACM Conf. on Supercomputing, pages 341–352, January 1991.

    Google Scholar 

  32. William Pugh and David Wonnacott. An evaluation of exact methods for analysis of value-based array data dependences. In Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing, pages 546–566. Springer-Verlag LNCS 768, August 1993.

    Google Scholar 

  33. Patrice Quinton. The systematic design of systolic arrays. In F. Fogelman, Y. Robert, and M. Tschuente, editors, Automata networks in Computer Science, pages 229–260. Manchester University Press, December 1987.

    Google Scholar 

  34. Xavier Redon and Paul Feautrier. Detection of reductions in sequential programs with loops. In Arndt Bode, Mike Reeve, and Gottfried Wolf, editors, Procs. of the 5th Int. Parallel Architectures and Languages Europe, pages 132–145. LNCS 694, June 1993.

    Google Scholar 

  35. A. Schrijver. Theory of linear and integer programming. Wiley, New York, 1986.

    Google Scholar 

  36. M. Wolf and Monica S. Lam. A loop transformation theory and an algorithm to maximize parallelism. IEEE Trans. on Parallel and Distributed Systems, 2(4):452–471, October 1991.

    Google Scholar 

  37. J. Xue. Automating non-unimodular loop transformations for massive parallelism. Parallel Computing, 20(5):711–728, May 1994.

    Google Scholar 

  38. H. P. Zima, H. J. Bast, and M. Gerndt. SUPERB: A tool for semiautomatic MIMD/SIMD parallelization. Parallel Computing, 6:1–18, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Guy-René Perrin Alain Darte

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Feautrier, P. (1996). Automatic parallelization in the polytope model. In: Perrin, GR., Darte, A. (eds) The Data Parallel Programming Model. Lecture Notes in Computer Science, vol 1132. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61736-1_44

Download citation

  • DOI: https://doi.org/10.1007/3-540-61736-1_44

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61736-5

  • Online ISBN: 978-3-540-70646-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics