ВУЗ:
Составители:
Рубрика:
- 93 -
Фрагмент (9) повторяется циклически, чтобы вычисляемые прямоугольные
блоки заполнили матрицу [C] целиком. Хотя для вычисления каждого блока
матрицы [C] в самом деле необходимы указанные на рис.25 горизонтальная
лента [A] и вертикальная лента [B], оне (ленты) будут пересылаться еще мно-
го раз при вычислении других прямоугольных блоков результирующей мат-
рицы [C]. Одна из модификаций алгоритма лежит буквально ‘на поверхно-
сти’ – при заданной вертикальной ленте [B] возможно вычислить не только
прямоугольный блок
2]j1...[ji 1],i1...[ii,
с
ij
∈
∈
, но и всю вертикальную ленту
2]j1...[ji ],...[i,
i
с
maxij
∈∈
1
элементов матрицы [C] (выделено пунктиром на
рис.25); для этого достаточно пересылать процессорам только новые гори-
зонтальные ленты матрицы [A] при неизменной вертикальной ленте [B].
Анализ избыточности пересылок привел к модификации методов умно-
жения матриц – блочным алгоритмам Фокса (Geoffrey Fox) и Кэннона, в слу-
чае применения которых процессам пересылаются для обработки не ленты, а
прямоугольные блоки перемножаемых матриц (эти алгоритмы требуют до-
полнительных обменов данными между процессорами, вычисляющим итого-
вую матрицу). Наличие интенсивных обменов между процессами характерно
и для методов волновой обработки данных (wavefront or hyperplane methods).
Подобным же целям (конечная решаемая задача – реализация возможно
более крупноблочного параллелизма) служит метод распределения данных с
теневыми гранями (окружение основного обрабатываемого блока буферной
зоной шириной 1 элемент данных, куда принимаются при обменах копии
значений от соседних процессоров), [5].
Контрольные вопросы
1. Что такое граф алгоритма? Почему ГА является ориентированным? Чем
определяется принадлежность вершин ГА к множеству входных и выход-
ных? Что такое ярусно-параллельная форма алгоритма?
2. Каким образом матрица смежности представляет граф алгоритма?
3. Что такое операторы-преобразователи и операторы-распознаватели? В ка-
ких моделях графового представления алгоритмов они используются?
4. В чем заключается потенциал параллелизма в циклах? Какие методы ана-
лиза пространства итераций используются для выявления параллелизма?
Что такое циклы ParDO?
5. Каким образом выявляется параллелизм системами автоматического рас-
параллеливания? Какие эквивалентные преобразования обычно выполня-
ются этими системами? Что такое редукция высоты дерева и
на основе ка-
ких свойств арифметики она реализуется?
6. Что такое сбалансированность загрузки процессоров при распараллелива-
нии? Каково условие сбалансированности?
- 93 - Фрагмент (9) повторяется циклически, чтобы вычисляемые прямоугольные блоки заполнили матрицу [C] целиком. Хотя для вычисления каждого блока матрицы [C] в самом деле необходимы указанные на рис.25 горизонтальная лента [A] и вертикальная лента [B], оне (ленты) будут пересылаться еще мно- го раз при вычислении других прямоугольных блоков результирующей мат- рицы [C]. Одна из модификаций алгоритма лежит буквально ‘на поверхно- сти’ – при заданной вертикальной ленте [B] возможно вычислить не только прямоугольный блок сij , i ∈ [i 1...i 1], i ∈ [j 1... j 2] , но и всю вертикальную ленту сij , i ∈ [ 1...i max ], i ∈ [j 1... j 2] элементов матрицы [C] (выделено пунктиром на рис.25); для этого достаточно пересылать процессорам только новые гори- зонтальные ленты матрицы [A] при неизменной вертикальной ленте [B]. Анализ избыточности пересылок привел к модификации методов умно- жения матриц – блочным алгоритмам Фокса (Geoffrey Fox) и Кэннона, в слу- чае применения которых процессам пересылаются для обработки не ленты, а прямоугольные блоки перемножаемых матриц (эти алгоритмы требуют до- полнительных обменов данными между процессорами, вычисляющим итого- вую матрицу). Наличие интенсивных обменов между процессами характерно и для методов волновой обработки данных (wavefront or hyperplane methods). Подобным же целям (конечная решаемая задача – реализация возможно более крупноблочного параллелизма) служит метод распределения данных с теневыми гранями (окружение основного обрабатываемого блока буферной зоной шириной 1 элемент данных, куда принимаются при обменах копии значений от соседних процессоров), [5]. Контрольные вопросы 1. Что такое граф алгоритма? Почему ГА является ориентированным? Чем определяется принадлежность вершин ГА к множеству входных и выход- ных? Что такое ярусно-параллельная форма алгоритма? 2. Каким образом матрица смежности представляет граф алгоритма? 3. Что такое операторы-преобразователи и операторы-распознаватели? В ка- ких моделях графового представления алгоритмов они используются? 4. В чем заключается потенциал параллелизма в циклах? Какие методы ана- лиза пространства итераций используются для выявления параллелизма? Что такое циклы ParDO? 5. Каким образом выявляется параллелизм системами автоматического рас- параллеливания? Какие эквивалентные преобразования обычно выполня- ются этими системами? Что такое редукция высоты дерева и на основе ка- ких свойств арифметики она реализуется? 6. Что такое сбалансированность загрузки процессоров при распараллелива- нии? Каково условие сбалансированности?
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »