ЧМ (Н.Н.Калиткин, ИММ РАН) / progonka
.pdfВо-первых, в случае немонотонного оператора ( r0 ≠ 0 ) используется
алгоритм немонотонной прогонки, который даже в скалярном случае требует введения аналогичных базисных функций. При этом аналогом разбиения по процессорам здесь является разбиение исходной области точками смены знака функции r0 . Если k - число смен знака, то короткая
система уравнений содержит в скалярном алгоритме 2k , а в параллельном - не более 2 p + 2k неизвестных. В обоих вариантах она решается ленточным методом Гаусса. Эффективность параллельного алгоритма в данной ситуации может достигать 100% за счет того, что его скалярный аналог является более трудоемким по сравнению с алгоритмом обычной прогонки.
Если же функция r0 не меняет знак, то введение базисных функций в
скалярном алгоритме не нужно, и можно использовать левую или правую (в зависимости от знака r0 ) немонотонную прогонку (см. [4]).
Соответственно эффективность параллельного варианта немонотонной прогонки в этом случае равна 33%.
Во-вторых, в случае периодической задачи, в скалярном варианте используется алгоритм циклической прогонки. В нем фактически вводится аналогичный базис из двух функций на всем отрезке интегрирования, а короткая система содержит 2 неизвестных и решается любым способом. В параллельном алгоритме, как и выше, на каждом процессоре вводится базис из трех функций, а короткая система содержит 2 p − 1 неизвестных и решается с помощью скалярного алгоритма циклической прогонки. Эффективность параллельного варианта циклической прогонки может достигать 67%.
В-третьих, случай интегральных граничных условий аналогичен периодической задаче. Отличие состоит лишь в том, что короткая система уравнений в параллельном алгоритме содержит 2 p неизвестных и может решаться с помощью любого варианта метода скалярной прогонки. Эффективность параллельного варианта прогонки здесь также может быть равной 67%.
Скажем несколько слов о квазилинейной и нестационарной задачах,
атакже обобщениях на многомерный случай и случай систем уравнений.
Вквазилинейной постановке для реализации построенной разностной схемы необходим итерационный процесс. Обычно в качестве такового используют итерации по Ньютону. Тогда при условии локального характера нелинейности (Ньютоновский оператор перехода не выходит за рамки шаблона разностной схемы, за исключением быть может граничных узлов) на каждой итерации мы получаем задачу типа (8)-(9) и можем использовать параллельный алгоритм прогонки. При этом, если оператор
11
перехода меняется не на каждой итерации, то пересчитывать вторую и третью базисные функции на каждой итерации не нужно. В этом случае число операций в параллельном алгоритме существенно сокращается, и есть возможность получить эффективность параллелизации близкую к
100%.
Аналогичная ситуация имеет место и в нестационарном случае. Если функции k , ri и q , составляющие оператор перехода со слоя на слой,
постоянны или зависят только от x , то базисные функции y( II ) , y( III ) можно вычислить только один раз (в начале расчета). Тогда на каждом слое по времени пересчитывается только функция y( I ) , и эффективность распараллеливания увеличивается до 100%. Если k , ri и q слабо зависят
от t , то, как и в методе Ньютона, их можно вычислять не на каждом слое, а через несколько шагов по времени. В этом случае тоже можно получить высокую эффективность параллельного алгоритма.
Вслучае многомерной краевой задачи в областях прямоугольной формы возможно эффективное использование базового параллельного алгоритма на этапах реализации итерационных или временных схем с факторизованным оператором. В качестве примера можно привести решение многомерного уравнения Пуассона с помощью метода переменных направлений или решение многомерного уравнения теплопроводности с помощью локально-одномерных разностных схем. Нетрудно показать, что эффективность получаемых здесь параллельных реализаций также может достигать 100%.
Вслучае систем уравнений вида (8)-(9) можно воспользоваться алгоритмом параллельной матричной прогонки, который строится на изложенных выше принципах. Очевидно, что во многих случаях и здесь удастся получить высокую эффективность распараллеливания.
Взаключение можно сформулировать следующие выводы.
1.Рассмотренный базовый алгоритм параллельной прогонки обладает асимптотическим свойством, которое позволяет эффективно использовать его, как непосредственно, так и в комбинациях с другими методами.
2.Эффективность базового алгоритма прогонки составляет от 33 до 100% в зависимости от вычислительной сложности исходной задачи в скалярном случае и способа агрегирования параллельной прогонки с другими алгоритмами.
Список литературы
1.Архитектура ЭВМ и численные методы. Сб. науч. трудов / Под ред. В.В. Воеводина. Москва: ОВМ АН СССР, 1983.
12
2.Коновалов А.Н. Введение в вычислительные методы линейной алгебры. Новосибирск: ВО "Наука", Сибирская издательская фирма, 1993.
3.Самарский А.А. Теория разностных схем. М.: Наука, 1983.
4.Кареткина Н.В. Безусловно устойчивая разностная схема для параболических уравнений, содержащих первые производные. Журнал вычислительной математики и математической физики, 1980, 20(7), 236-240.
13
