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.
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Mass, 1986.
A. J. Bernstein. Analysis of programs for parallel processing. IEEE Trans. on El. Computers, EC-15, 1966.
Thomas Brandes. The importance of direct dependences for automatic parallelization. In ACM Int. Conf. on Supercomputing, St Malo, France, July 1988.
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.
Patrick Le Goueslier d'Argence. Contribution à l'étude des probleèmes d'ordonnancement cycliques multidimensionnels. PhD thesis, Université Paris VI, December 1995.
G. B. Dantzig. Linear Programming and Extensions. Princeton University Press, 1963.
A. Darte. Techniques de parallélisation automatique de nids de boucles. PhD thesis, ENS Lyon, April 1993.
Alain Darte, Leonid Khachiyan, and Yves Robert. Linear scheduling is nearly optimal. Parallel Processing Letters, 1(2):73–81, 1991.
Michèle Dion and Yves Robert. Mapping affine loop nest: new results. In HPCN Conf. LNCS 919, 1995.
Alain Darte and Frédéric Vivien. Automatic parallelization based on multidimensional scheduling. Technical Report RR 94–24, LIP, 1994.
Paul Feautrier. Array expansion. In ACM Int. Conf. on Supercomputing, pages 429–441, 1988.
Paul Feautrier. Parametric integer programming. RAIRO Recherche Opérationnelle, 22:243–268, September 1988.
Paul Feautrier. Dataflow analysis of scalar and array references. Int. J. of Parallel Programming, 20(1):23–53, February 1991.
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.
Paul Feautrier. Some efficient solutions to the affine scheduling problem, II, multidimensional time. Int. J. of Parallel Programming, 21(6):389–420, December 1992.
Paul Feautrier. Toward automatic distribution. Parallel Processing Letters, 4(3):233–244, 1994.
J. B. J. Fourier. Oeuvres de fourier, tome II. Gauthier-Villard, Paris, 1890.
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.
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.
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.
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.
Wayne Kelly and William Pugh. Selecting affine mappings based on performance estimations. Parallel Processing Letters, 4(3):205–220, September 1994.
Leslie Lamport. The parallel execution of DO loops. CACM, 17:83–93, February 1974.
Arnauld Leservot. Analyse Interprocédurale du flot des données. PhD thesis, Université Paris VI, March 1996.
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.
Michel Minoux. Programmation Mathématique, théorie et algorithmes. Dunod, Paris, 1983.
Robin Milner, Mads Tofte, and Robert Harper. The definition of Standard ML. The MIT Press, 1990.
William Pugh. The omega test: A fast and practical integer programming algorithm for dependence analysis. In Supercomputing, 1991.
William Pugh. Uniform techniques for loop optimization. ACM Conf. on Supercomputing, pages 341–352, January 1991.
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.
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.
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.
A. Schrijver. Theory of linear and integer programming. Wiley, New York, 1986.
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.
J. Xue. Automating non-unimodular loop transformations for massive parallelism. Parallel Computing, 20(5):711–728, May 1994.
H. P. Zima, H. J. Bast, and M. Gerndt. SUPERB: A tool for semiautomatic MIMD/SIMD parallelization. Parallel Computing, 6:1–18, 1988.
Author information
Authors and Affiliations
Editor information
Rights 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