ВУЗ:
Рубрика:
89
, 1,...,
i j p
. Подзадача (
,
i j
), полученная после укрупнения,
должна содержать блоки
,
ik kj
A B
,
1,...,
k p
;
трехмерное укрупнение: каждая укрупненная подзадача объеди-
няет
3 3 3
( / ) ( / ) ( / )
n p n p n p
мелкозернистых подзадач.
1D 1D 2D 3D
строки столбцы
Рис. 5.3 Стратегии укрупнения мелкозернистых подзадач
4. Планирование вычислений. На этом этапе разработки парал-
лельного алгоритма необходимо определить, на каких процессор-
ных элементах будут выполняться укрупненные подзадачи.
Проведя расчет временных затрат без учета обменных операций
между процессорами для каждой из построенных процедур парал-
лельного умножения матриц, получим pnttT
addmultp
/)(
3
. Тогда
p
pntt
ntt
T
T
S
addmult
addmult
p
p
/)(
)(
3
3
1
. (5.3)
При рассмотрении параллельной программы, реализующей ал-
горитм матричного умножения, ограничимся достаточно простым
случаем: будем использовать одномерное распределение матрицы
произведения по процессам. Это означает, что каждый процесс бу-
дет вести расчеты лишь в своей полосе матрицы результата
(рис. 5.4). В языке программирования FORTRAN двумерные масси-
вы располагаются в памяти компьютера по столбцам, и это, в свою
очередь, означает, что декомпозицию («разрезание» по процессам)
матрицы результата следует производить по второму индексу, с той
целью, чтобы на каждом процессорном элементе хранились данные
из близко расположенных друг к другу ячеек памяти. Это позволит
ускорить обращение каждого процесса к элементам своей части
массива, что увеличит эффективность программы.
Страницы
- « первая
- ‹ предыдущая
- …
- 87
- 88
- 89
- 90
- 91
- …
- следующая ›
- последняя »
