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

UptoLike

100
Строку, которая вычитается из всех остальных строк, после
предварительного умножения на нужные коэффициенты, назовем
текущей строкой. Общая нумерация строк во всей матрице не сов-
падает с индексацией строк в каждом ПЭ. В каждом ПЭ индексация
строк в массиве начинается с единицы.
Алгоритм прямого хода заключается в следующем. Сначала те-
кущей строкой является строка с индексом 1 в 0-м ПЭ, затем строка
с индексом 1 в 1ПЭ и т.д., и, наконец, строка с индексом 1 в по-
следнем по номеру ПЭ. После чего цикл по процессорным элемен-
там повторяется и текущей строкой становится строка с индексом 2
в 0-м ПЭ, затем строка с индексом 2 в 1-м ПЭ и т.д. После прямого
хода строки матрицы в каждом ПЭ будут иметь вид, показанный на
рис. 6.2 (пример приведен для четырех ПЭ, * вещественные чис-
ла).
0 ПЭ 1 ПЭ
2 ПЭ 3 ПЭ
3 ПЭ
Рис. 6.2 Вид строк матрицы после прямого хода метода Гаусса
Аналогично последовательно по узлам, начиная с последнего по
номеру ПЭ, осуществляется обратный ход метода Гаусса.
Особенностью этого алгоритма является то, что как в прямом,
так и при обратном ходе ПЭ являются более равномерно загружен-
ными. Процессорные элементы активны в течение всего времени
вычислений, и пересылка строк осуществляется всегда на все ПЭ.
Приведем параллельную Фортран-программу численного реше-
ния рассмотренным методом системы линейных уравнений с полно-
заполненной матрицей, предполагая, что на главной диагонали мат-
рицы в процессе вычислений всегда получаются ненулевые элемен-
ты.
1 * * * * * * * * * * * * * * *
0 0 0 0 1 * * * * * * * * * * *
0 0 0 0 0 0 0 0 1 * * * * * * *
0 0 0 0 0 0 0 0 0 0 0 0 1 * * *
0 1 * * * * * * * * * * * * * *
0 0 0 0 0 1 * * * * * * * * * *
0 0 0 0 0 0 0 0 0 1 * * * * * *
0 0 0 0 0 0 0 0 0 0 0 0 0 1 * *
0 0 1 * * * * * * * * * * * * *
0 0 0 0 0 0 1 * * * * * * * * *
0 0 0 0 0 0 0 0 0 0 1 * * * * *
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 *
0 0 0 1 * * * * * * * * * * * *
0 0 0 0 0 0 0 1 * * * * * * * *
0 0 0 0 0 0 0 0 0 0 0 1 * * * *
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1