Circular shift of loop body - programme transformation, promoting parallelism

Бесплатный доступ

The article deals with the programme transformation executing the circular shift of loop body statements. It can be used for vectorizing or parallelizing. This becomes possible due to the fact that when the order of loop body statements is changed, some of the bottom-up arcs become top-down arcs. Besides, sometimes loop carried dependence arcs are substituted by loop independent ones. It should be pointed out that in executing the circular shift the number of loop iterations is reduced by one. The transformation can be used both independently and in conjunction with other transformations promoting parallelism. These could be "forward substitution", "scalar expansion", "privatization", "array expansion", etc. The transformation under consideration in this article can be used both in hand parallelization and added to a paralleling (optimizing) compiler. Moreover, the application of the transformation results in the equivalent code only for the loops where loop unrolling is the equivalent transformation. Thus, they can contain nested loops, if statements and other programming language statements.

Еще

Parallel computations, programme transformations, dependence graph, scalar expansion, loop distribution

Короткий адрес: https://sciup.org/147159433

IDR: 147159433   |   DOI: 10.14529/mmp170310

Список литературы Circular shift of loop body - programme transformation, promoting parallelism

  • Allen, R. Optimizing Compilers for Modern Architectures/R. Allen, K. Kennedy. -San Francisco; San Diego; N.Y.; Boston; London; Sidney; Tokyo: Morgan Kaufmann Publishers, 2002. -790 p.
  • Wolfe, M. High Performance Compilers for Parallel Computing/M. Wolfe. -Redwood City: Addison-Wesley Publishing Company, 1996. -570 p.
  • Штейнберг, Б.Я. Математические методы распараллеливания рекуррентных программных циклов на суперкомпьютеры с параллельной памятью/Б.Я. Штейнберг. -Ростов-на-Дону: Изд-во Ростовского ун-та, 2004. -192 с.
  • Duo Liu. Optimal Loop Parallelization for Maximizing Iteration-Level Parallelism/Duo Liu, Zili Shao, Meng Wang, Minyi Guo, Jingling Xue//Proceedings of International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES 09). -N.Y.: ACM, 2009. -P. 67-76.
  • Штейнберг, О.Б. Распараллеливание рекуррентных циклов с нерегулярным вычислением суперпозиций/О.Б. Штейнберг//Известия вузов. Северо-Кавказский регион. Естественные науки. -2009. -№ 2. -С. 18-21.
  • Duo Liu. Optimally Maximizing Iteration-Level Loop Parallelism/Duo Liu, Yi Wang, Zili Shao, Minyi Guo, Jingling Xue//IEEE Transactions on Parallel and Distributed Systems. -2012. -V. 23, № 3. -P. 564-572.
  • Штейнберг, О.Б. Автоматическое распараллеливание рекуррентных циклов с проверкой устойчивости/О.Б. Штейнберг, С.Е. Суховерхов//Информационные технологии. -2010. -№ 1. -C. 40-45.
  • Muchnick, S.S. Advanced Compiler Design and Implementation/S.S. Muchnick. -San Francisco: Morgan Kauffman, 1997. -856 p.
  • Aho, A.V. Compilers: Principles, Techniques, and Tools/A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman. -London: Pearson Education, 2007. -1014 p.
  • Евстигнеев, В.А. Векторизация программ/В.А. Евстигнеев, С.В. Спрогис//Векторизация программ: теория, методы, реализация. -М.: Мир, 1991. -С. 246-267.
  • Шульженко, А.М. Исследование информационных зависимостей программ для анализа распараллеливающих преобразований: дис.. канд. техн. наук/А.М. Шульженко. -Ростов-на-Дону, 2006.
  • Штейнберг, О.Б. Распараллеливание циклов, допускающих рекуррентные зависимости: дис.. канд. физ.-мат. наук/О.Б. Штейнберг. -Москва, 2014.
  • Штейнберг, О.Б. Минимизация количества временных массивов в задаче разбиения циклов/О.Б. Штейнберг//Известия высших учебных заведений. Северо-Кавказский регион. Естественные науки. -2011. -№ 5. -С. 31-35.
  • Feautrier, P. Array Expansion/P. Feautrier//Proceedings of the 2nd International Conference on Supercomputing. -N.Y.: ACM, 1988. -P. 429-441.
Еще
Статья научная