Высокопроизводительные вычисления на кластерах. Беликов Д.А - 83 стр.

UptoLike

83
вания циклов
jki
при умножении матриц в программе, написанной
на Фортране, будет способствовать повышению производительно-
сти вычислений по сравнению с
ijk
циклом:
do i = 1, n
do j = 1, n
do k = 1, n
c(i, j) = c(i, j)+a(i, k)*b(k, j)
end do
end do
end do
do j = 1, n
do k = 1, n
do i = 1, n
c(i, j) = c(i, j)+a(i, k)*b(k, j)
end do
end do
end do
Наоборот, цикл
kij
предпочтительнее использовать при про-
граммировании на языках со строковым способом хранения дву-
мерных массивов в оперативной памяти.
цикл
ijk
цикл
jki
цикл
kij
Рис. 5.1 Схема доступа к элементам матриц
В табл. 5.1 представлены результаты оценки временных затрат
Фортран-программ, умножающих матрицы размерности: 1000х1000,
2000х2000 и 4000х4000. В программах используются различные
способы организации работы вложенных циклов. Расчеты проводи-
лись на одном вычислительном узле кластера СКИФ Cyberia. Оце-
нивая полученные данные, можно отметить, что использование
циклов
jki
и
kji
имеет преимущество перед другими способами