Academia.eduAcademia.edu

Outline

Compiling for massively parallel architectures: a perspective

1995, Microprocessing and Microprogramming

https://doi.org/10.1016/0165-6074(95)00025-J

Abstract

The problem of automatically generating programs for massively parallel computers is a very complicated one, mainly because there are many architectures, each of them seeming to pose its own particular compilation problem. The purpose of this paper is to propose a framework in which to discuss the compilation process, and to show that the features which a ect it are few and generate a small number of combinations. The paper is oriented toward ne-grained parallelization of static control programs, with emphasis on data ow analysis, scheduling and placement. When going from there to more general programs and to coarser parallelism, one encounters new problems, some of which are discussed in the conclusion.

References (41)

  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.
  2. Michel Auguin, Fernand Bo eri, and Jean-Paul Dalban. Synth ese et evaluation du projet OPSILA. TSI, 9:79{98, 1990.
  3. AI91] Corinne Ancourt and Fran cois Irigoin. Scanning polyhedra with DO loops. In Proc. third SIGPLAN Symp. on Principles and Practice of Parallel Program- ming, pages 39{50. ACM Press, April 1991.
  4. Jennifer M. Anderson and Monica S. Lam. Global optimization for parallelism and locality on scalable parallel machines. ACM Sigplan Notices, 28:112{125, June 1993.
  5. A. J. Bernstein. Analysis of programs for parallel processing. IEEE Trans. on El. Computers, EC-15, 1966.
  6. BKK + 94] David Bau, Indupras Kodukula, Vladimir Kotlyar, Keshav Pingali, and Paul Stodghill. Solving alignment using elementary linear algebra. In Seventh Annual Workshop on Languages and Compilers for Parallel Computing, pages 46{60. Springer-Verlag, LNCS 892, August 1994.
  7. Luc Boug e. Le mod ele de programmation a parall elisme de donn es : une per- spective s emantique. T.S.I., 12(5):541{562, 1993.
  8. Jean-Fran cois Collard, Denis Barthou, and Paul Feautrier. Fuzzy array data ow analysis. In ACM SIGPLAN Symp. on Principles and Practice of Parallel Pro- gramming. ACM, July 1995.
  9. Lucien M. Censier and Paul A. Feautrier. A new solution to coherence problems in multicache systems. IEEE Trans. on Computers, C-27:1112{1118, December 1978.
  10. Jean-Fran cois Collard, Paul Feautrier, and Tanguy Risset. Construction of do loops from systems of a ne constraints. Parallel Processing Letters, to appear, 1994.
  11. Nicholas Carriero and David Gelernter. How to write parallel programs: a guide to the perplexed. ACM Computing Surveys, 21(3), September 1989.
  12. Zbigniew Chamski. Environnement logiciel de programmation d'un acc el erateur de calcul parall ele. PhD thesis, IFSIC, Rennes I, February 1993.
  13. Jean-Fran cois Collard. Code generation in automatic parallelizers. In Claude Girault, editor, Proc. Int. Conf. on Application in Parallel and Distributed Com- puting, IFIP WG 10.3, pages 185{194. North Holland, April 1994.
  14. A. Darte. Techniques de parall elisation automatique de nids de boucles. PhD thesis, ENS Lyon, April 1993.
  15. Alain Darte and Yves Robert. Mapping uniform loop nests onto distributed memory architectures. Parallel Computing, 20:679{710, 1994.
  16. Alain Darte and Yves Robert. A ne-by-statement scheduling of uniform and a ne loop nests over parametric domains. J. Parallel and Distributed Comput- ing, 1995. to appear.
  17. Alain Darte and Fr ed eric Vivien. Automatic parallelization based on multidi- mensional scheduling. Technical Report RR 94-24, LIP, 1994.
  18. Paul Feautrier. Array expansion. In ACM Int. Conf. on Supercomputing, pages 429{441, 1988.
  19. Paul Feautrier. Parametric integer programming. RAIRO Recherche Op erationnelle, 22:243{268, September 1988.
  20. Paul Feautrier. Data ow analysis of scalar and array references. Int. J. of Parallel Programming, 20(1):23{53, February 1991.
  21. Paul Feautrier. Some e cient solutions to the a ne scheduling problem, I, one dimensional time. Int. J. of Parallel Programming, 21(5):313{348, October 1992.
  22. Paul Feautrier. Some e cient solutions to the a ne scheduling problem, II, mul- tidimensional time. Int. J. of Parallel Programming, 21(6):389{420, December 1992.
  23. Paul Feautrier. Toward automatic distribution. Parallel Processing Letters, 4(3):233{244, 1994.
  24. C. Heckler and L. Thiele. Computing linear data dependencies in nested loop programs. Parallel Processing Letters, 4(3):193{204, 1994.
  25. Iri87] Fran cois Irigoin. Partitionnement de boucles imbriqu ees, une technique d'optimisation pour les programmes scienti ques. PhD thesis, Universit e P. et M. Curie, Paris, June 1987.
  26. IT88] Fran cois Irigoin and R emi Triolet. Supernode partitioning. In Proc. 15th POPL, pages 319{328, San Diego, Cal., January 1988.
  27. Wayne Kelly and William Pugh. Generating schedules and code within a uni ed reordering transformation framework. Technical Report TR-92-126, Univ. of Maryland, November 1992.
  28. KP94] Wayne Kelly and William Pugh. Selecting a ne mappings based on performance estimations. Parallel Processing Letters, 4(3):205{220, September 1994.
  29. Jingke Li and Marina Chen. The data alignment phase in compiling programs for distributed memory machines. Journal of Parallel and Distributed Computing, 13:213{221, 1991.
  30. Dror E. Maydan, Saman P. Amarasinghe, and Monica S. Lam. Array data ow analysis and its use in array privatization. In Proc. of ACM Conf. on Principles of Programming Languages, pages 2{15, January 1993.
  31. Michel Minoux. Programmation Math ematique, th eorie et algorithmes. Dunod, Paris, 1983.
  32. William Pugh and David Wonnacott. An evaluation of exact methods for anal- ysis of value-based array data dependences. In Sixth Annual Workshop on Pro- gramming Languages and Compilers for Parallel Computing, pages 546{566. Springer-Verlag LNCS 768, August 1993.
  33. P. Quinton and V. Van Dongen. The mapping of linear recurrence equations on regular arrays. The Journal of VLSI Signal Processing, 1:95{113, 1989.
  34. Qui87] 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.
  35. Tanguy Risset. Parall elisation Automatique: du mod ele systolique au a la com- pilation des nids de boucles. PhD thesis, ENS Lyon, February 1994.
  36. Mourad Raji-Werth and P. Feautrier. On parallel program generation for mas- sively parallel architectures. In M. Durand and F. El Dabaghi, editors, High Performance Computing II. North-Holland, October 1991.
  37. Mourad Raji-Werth and Paul Feautrier. On factors limiting the generation of ef- cient compiler-parallelized programs. In Marc Moonen and Francky Catthoor, editors, Algorithms and Parallel VLSI Architectures, III, pages 331{340, Ams- terdam, 1995. Elsevier.
  38. Herv e Le Verge, Doran K. Wilde, and Vincent Van Dongen. La synth ese de nids de boucles avec la biblioth eque poly edrique. In Luc Boug e, editor, RenPar'6. ENS Lyon, June 1994.
  39. 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.
  40. J. Xue. Automatic non-unimodular transformations of loop nests. Parallel Computing, 20(5):711{728, May 1994.
  41. H. P. Zima, H. J. Bast, and M. Gerndt. SUPERB : A tool for semi-automatic MIMD/SIMD parallelization. Parallel Computing, 6:1{18, 1988.