ВУЗ:
Рубрика:
87
основе расчетов на одном вычислительном узле кластера СКИФ
Cyberia. Ниже представлен фрагмент программы, реализующей
блочное умножение матриц.
do j=1,nn
do k=1,nn
do i=1,nn
do i1=1,m
do j1=1,m
do k1=1,m
C(i1, j1, i, j)=C(i1, j1, i, j)+A(i1, k1, i, k)*B(k1, j1, k, j)
еnd do
end do
end do
end do
end do
end do
Здесь
nn N
,
/
m n N
.
Таблица 5.2 Время умножения матриц 2000х2000
с использованием блочных алгоритмов, с
1, 1, 1
i j k
1, 1, 1
k i j
1, 1, 1
j k i
, ,
j k i
6,2 7,9 9,1
, ,
i j k
6,3 8,0 8,8
, ,
k i j
10,0 11,7 12,8
Таблица 5.2 наглядно демонстрирует существенное сокращение
времени выполнения операции умножения матриц большой размер-
ности с использованием их блочного представления.
5.2 Распараллеливание операции умножения матриц
Процедура параллельного умножения матриц легко может быть
построена на основе алгоритмов скалярного умножения векторов
или матрично-векторного умножения для многопроцессорных сис-
тем. Введение макроопераций значительно упрощает проблему вы-
бора эффективного способа распараллеливания вычислений, позво-
Страницы
- « первая
- ‹ предыдущая
- …
- 85
- 86
- 87
- 88
- 89
- …
- следующая ›
- последняя »
