ВУЗ:
Составители:
Рубрика:
- 89 -
тике (учет ограниченной машинной точности представления данных может
накладывать ограничения на ЭкП).
Одним из ЭкП, достаточно часто используемое в распараллеливающих
компиляторах, является редукция высоты дерева. Один из методов реализа-
ции такого преобразования – использование ассоциативных, коммутативных
и дистрибутивных свойств арифметики, таким путем компиляторы могут об-
наруживать неявный параллелизм в алгебраических выражениях и
генериро-
вать объектный (а затем и исполняемый) код для многопроцессорных систем
с указанием операций, которые можно выполнять одновременно.
На рис.24 показано (в виде
графа алгоритма), как от-
транслировал бы алгебраиче-
ское выражение обычный
компилятор (слева) и как оно
может быть обработано рас-
параллеливающим компиля-
тором (справа); при этом не
принимается
во внимание
возможное изменение точно-
сти вычислений [2]. Как вид-
но, во многих случаях воз-
можно уменьшить число яру-
сов (редуцировать высоту де-
рева) путем выявления (ранее
скрытого) параллелизма в вы-
числениях.
Не следует забывать, что
подобная оптимизация про-
грамм совсем не бесплатна –
необходимы увеличенные за-
траты времени и вычисли-
тельных ресурсов
в период
анализа/компиляции.
Очень эффективны эквива-
лентные преобразования при
оптимизации циклов (гнезд
циклов).
В табл.6 приведены некото-
рые преобразования циклов,
автоматически осуществляе-
мые распараллеливающим
Fortran-компилятором
Рисунок 24 — Уменьшение высоты дерева: a) - за
счет ассоциативности, б) - за счет коммутатив-
ности и в) - за счет дистрибутивности (слева –
обычный компилятор, справа - распараллели-
вающий)
- 89 -
тике (учет ограниченной машинной точности представления данных может
накладывать ограничения на ЭкП).
Одним из ЭкП, достаточно часто используемое в распараллеливающих
компиляторах, является редукция высоты дерева. Один из методов реализа-
ции такого преобразования – использование ассоциативных, коммутативных
и дистрибутивных свойств арифметики, таким путем компиляторы могут об-
наруживать неявный параллелизм в алгебраических выражениях и генериро-
вать объектный (а затем и исполняемый) код для многопроцессорных систем
с указанием операций, которые можно выполнять одновременно.
На рис.24 показано (в виде
графа алгоритма), как от-
транслировал бы алгебраиче-
ское выражение обычный
компилятор (слева) и как оно
может быть обработано рас-
параллеливающим компиля-
тором (справа); при этом не
принимается во внимание
возможное изменение точно-
сти вычислений [2]. Как вид-
но, во многих случаях воз-
можно уменьшить число яру-
сов (редуцировать высоту де-
рева) путем выявления (ранее
скрытого) параллелизма в вы-
числениях.
Не следует забывать, что
подобная оптимизация про-
грамм совсем не бесплатна –
необходимы увеличенные за-
траты времени и вычисли-
тельных ресурсов в период
анализа/компиляции.
Очень эффективны эквива-
лентные преобразования при
оптимизации циклов (гнезд
циклов).
В табл.6 приведены некото-
Рисунок 24 — Уменьшение высоты дерева: a) - за
счет ассоциативности, б) - за счет коммутатив-
рые преобразования циклов,
ности и в) - за счет дистрибутивности (слева – автоматически осуществляе-
обычный компилятор, справа - распараллели- мые распараллеливающим
вающий) Fortran-компилятором
Страницы
- « первая
- ‹ предыдущая
- …
- 87
- 88
- 89
- 90
- 91
- …
- следующая ›
- последняя »
