УДК 519.6 Илюшин А.И., Колмаков А.А.,

реклама
УДК 519.6
ПОСТРОЕНИЕ ПАРАЛЛЕЛЬНОЙ ВЫЧИСЛИТЕЛЬНОЙ МОДЕЛИ
ПУТЕМ КОМПОЗИЦИИ ВЫЧИСЛИТЕЛЬНЫХ ОБЪЕКТОВ
1,2
1
Илюшин А.И., 2Колмаков А.А., 1,2Меньшов И.С.
Кафедра вычислительной механики, механико-математический факультет МГУ
2
Институт прикладной математики ИПМ РАН
e-mail: [email protected]
Аннотация
Рассматривается общий
алгоритм построения параллельной вычислительной модели
путем композиции вычислительных объектов. Единственным условием применимости
предлагаемого алгоритма является конечность скорости распространения возмущений.
Обсуждается один из возможных вариантов отображения вычислительной модели на
объектно-ориентированную программно-аппаратную модель. Приводятся
результаты
вычислительных экспериментов по решению уравнения теплопроводности в линейном и
нелинейном случае.
CONSTRUCTING PARALLEL NUMERICAL MODELS BY MEANS OF THE
COMPOSITION OF COMPUTATIONAL OBJECTS
Илюшин А.И., Колмаков А.А., Меньшов И.С.
2
Ilyushin A.I., Kolmakov A.A., Menshov I.S.
Department of Computational Mechanics,
Faculty of Mechanics and Mathematics, Moscow State University
Keldysh Institute for Applied Mathematics, RAS
Abstract
We consider a general algorithm for constructing a parallel numerical model by means of the
composition of several computational objects. The only requirement for the applicability of the
proposed algorithm is the condition that the disturbance propagation speed is finite. We present
one possible approach to map a numerical model onto the object-oriented program model. Some
results of numerical experiments for solving the heat conduction equation in linear and nonlinear
cases are discussed.
1.
Введение
В настоящее время при построении вычислительной модели некоторой физической
области в стандартной последовательности «физическая модель – математическая
модель – вычислительная модель – программно-аппаратная модель» вычислительная
модель чаще всего представляется в виде некоторого набора матриц, векторов, чисел и
некоторого последовательного алгоритма для их обработки. При переходе к
программно-аппаратной модели этот последовательный алгоритм либо «вручную», либо
с некоторыми элементами автоматизации превращается в параллельный алгоритм,
который и реализуется в виде совокупности программ, одновременно работающих на
некотором множестве процессоров. Однако, как физическая модель, так и современная
программно-аппаратная модель по своей природе являются изначально параллельными.
Поэтому, использование промежуточного последовательного представления физической
модели с последующим переводом ее в параллельную модель выглядит явно
нелогичным. Оно приводит к неэффективности, как при разработке моделей, так и в
процессе их реализации на многопроцессорных вычислительных системах. В настоящей
работе предпринимается попытка описать общую схему построения параллельных
вычислительных моделей, исключив этап последовательного представления из
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
3
рассматриваемой цепочки представлений модели физической области. Тем самым
проблема «распараллеливания» при таком подходе просто отсутствует, так как
отсутствует сам объект распараллеливания – последовательный алгоритм.
Вместо
общепринятого подхода декомпозиции последовательной вычислительной модели мы
предлагаем решать другую задачу – задачу композиции модели путем отображение
одной параллельной структуры на другую без промежуточного последовательного
представления.
2.
Алгоритм композиции
Попытаемся
построить
параллельную
вычислительную
модель
некоторой
физической области из одновременно эволюционирующих и независимо описанных
подобластей. Мы предполагаем, что декомпозиция исходной области на подобласти
выполнена еще на уровне физической модели, и композицию из подобластей будем
выполнять на уровне дискретной вычислительной модели.
Предполагается, что
эволюционные процессы в этих подобластях уже описаны вполне традиционными
методами, и на уровне вычислительной модели для них имеются корректные алгоритмы
расчета. В этом случае естественно возникает проблема граничных условий на
внутренних границах, разделяющих соседние подобласти. Ясно, что до начала счета
невозможно определить значения граничных переменных. Эти значения должны
определяться в результате взаимодействия подобластей в процессе их эволюции.
Поэтому традиционные граничные условия необходимо заменить на описание
некоторого интерфейса между взаимодействующими подобластями. Широко известны
такого рода алгоритмы на основе метода декомпозиции области, предложенного
Шварцем [1]. В качестве другого примера можно привести использование граничных
потоков, как, например, в методе С.К. Годунова [2]. В настоящей работе делается
попытка
построить
алгоритм
взаимодействия
подобластей,
отличающийся
минимальными требованиями к типу физической области. Единственным условием
применимости предлагаемого алгоритма является конечность скорости распространение
возмущений [3].
Построение алгоритма композиции подобластей начнем с рассмотрения одного
частного случая. Пусть для некоторой физической области имеется последовательный
Илюшин А.И., Колмаков А.А., Меньшов И.С.
4
алгоритм решения SA, дающий численное решение u(x, t i ) с некоторой точностью ε.
Здесь х – пространственная координата, а t i – дискретное время с шагом ∆t.
Предполагается, что моделируемые физические процессы имеют конечную скорость
распространения возмущений, и алгоритм это учитывает. Для получения решения на
очередном временном слое, алгоритм использует имеющееся решение с предыдущего
слоя u(x, t i−1 ) и заданные граничные условия, что может быть записано в операторном
виде следующим образом:
𝐿(u(x, t i ), u(x, t i−1 )) = 0,
𝐵(u(x, t i )) = 0,
𝑥∈𝐷
𝑥 ∈ 𝜕𝐷
Естественно предположить, что исходный алгоритм SA дает правильное решение
не только для всей области задачи, но и для любой подобласти, при условии выполнения
соответствующих граничных условий. В общем случае, конечно, алгоритмы для
подобластей могут быть разными. Частный случай одинакового для всех подобластей
SA здесь рассматривается лишь для упрощения изложения.
Будем строить параллельный алгоритм (обозначим его PA) в виде суперпозиции из
применений последовательного алгоритма SA. Чтобы сделать изложение более
наглядным, далее оно будет привязано к случаю физической области 𝐷 в виде
прямоугольника и распараллеливанию на два потока вычислений, а так же граничным
условиям первого рода. Разобьем всю область на две подобласти, обработку которых
поручим двум вычислительным устройствам. Будем называть границу между
подобластями внутренней, в отличие от границ для всей области, которые назовем
внешними.
Пусть у нас имеется решение u(x, t i ) на слое t i и заданы внешние граничные
условия
первого
рода
для
момента
времени
t i+1 = t i + ∆t.
Мы
применяем
последовательный алгоритм к одной из подобластей для получения решения u(x, t i+1 ).
При этом возникает вопрос, какие внутренние граничные условия взять. Если бы мы
применили последовательный алгоритм ко всей области, то получили бы значения
u(x, t i+1 ) на внутренней границе, которые определили бы корректные внутренние
граничные условия, необходимые для того, чтобы результаты применения SA ко всей
области и к отдельным подобластям совпадали.
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
5
Допустим, мы применили алгоритм два раза, используя различные внутренние
граничные условия: корректные и взятые с предыдущего временного слоя. При этом
были получены различающиеся решения u1 (x, t i+1 ) и u2 (x, t i+1 ). В случае, если скорость
распространения возмущений 𝑉𝑝 ограничена и временной шаг ∆t достаточно мал,
полученные решения будут совпадать (с точностью до
ε) везде, кроме некоторой
приграничной части подобласти - полосе, ширина которой зависит, как раз, от 𝑉𝑝 и ∆t.
Таким образом, взяв некорректные внутренние граничные условия, мы получим
решение, которое можно назвать корректным почти всюду, так как оно совпадает везде в
подобласти, кроме приграничной полосы, с решением, которое могло бы быть получено
при применении последовательного алгоритма ко всей области.
Рассмотрим процедуру выполнения одного шага по времени от t i до t i+1
параллельным алгоритмом PA. Ее можно разбить на два этапа. Сначала алгоритм SA
работает на двух разных процессорах, обрабатывая соответствующие подобласти. При
этом на внешних границах используются известные граничные значения, а в качестве
начальных значений берутся значения с предыдущего шага t i . Для внутренних границ
точных граничных условий нет, поэтому будем брать в качестве таковых значения с
предыдущего шага, то есть в качестве граничных значений будем использовать значения
решения u(x, t i ) на внутренней границе. В результате в некоторых приграничных
полосах, которые мы обозначим 𝐴1 , 𝐴2 , каждой из подобластей полученное решение
будет неправильным. В тоже время, если скорость распространения возмущений и шаг
по времени достаточно малы, то (𝐷\𝐴1 )\𝐴2 не пусто и в этой области решение
корректно.
На втором этапе рассматривается новая подобласть, которая предположительно
будет покрывать с некоторым запасом 𝐴1 ∪ 𝐴2 , то есть ту часть области 𝐷, в которой
решение, полученное на первом этапе, оказалось неправильным. Назовем эту подобласть
приграничной. Тогда на всех границах этой подобласти в момент времени t i+1 = t i + ∆t
имеются правильные значения, поэтому мы можем применить к ней исходный алгоритм
SA для того, чтобы сделать шаг по времени от t i до t i+1.
При программной реализации приграничная область хранится на вычислительном
устройстве, вместе с одной из подобластей. Изначально она, как и подобласти, содержит
значения решения с предыдущего временного слоя. После расчета первого этапа ей
Илюшин А.И., Колмаков А.А., Меньшов И.С.
6
передаются граничные значения, причем часть из них (с подобласти, лежащей на другом
вычислительном устройстве) передается посредством межпроцессорных вызовов. После
расчета области на этапе 2 результаты передаются на подобласти, после чего возможен
расчет следующего момента времени.
Описанный выше алгоритм непосредственно обобщается на случай многомерной
области, который будет рассмотрен ниже в разделе 3.
Эффективность параллельного счета по рассматриваемой схеме определяется
соотношением времени независимого счета подобластей на первом этапе и
дополнительного времени, затраченного на межпроцессорные обмены и пересчет
приграничной области. Это дополнительное время очевидным образом зависит от
размеров приграничных областей, которые в свою очередь определяются скоростью
распространения возмущений Vp и временным шагом ∆t. Конкретные параметры этой
зависимости (чаще всего линейной) определяются используемой аппаратурой,
системным программным обеспечением и алгоритмами счета подобластей. Изменяя
размер подобластей (количество используемых процессоров) и время шага ∆t (размер
приграничной области), можно оптимизировать счет, добиваясь либо уменьшения доли
накладных расходов, либо уменьшения времени счета. Заметим, что приграничная
область в общем случае разбивается на части, которые считаются параллельно.
Остается открытым вопрос об определении приграничной области.
Так как
завышение размера приграничной области приводит лишь к некоторому увеличению
накладных расходов, можно использовать достаточно грубые оценки. Кроме того можно
динамически от шага к шагу делать оценки корректности выбора размера приграничной
области.
Примечание. При расчетах на многопроцессорных машинах пересылки данных
между процессорами занимают существенное время, причем из-за накладных расходов
на организацию каждого обмена оно в значительной степени зависит не только от
объема пересылаемой информации, но и от количества обменов. Таким образом,
уменьшение количества обменов может существенно повлиять на уменьшение времени
счета. В связи с этим заметим, что значение шага по времени ∆t, использованное в
параллельном алгоритме PA, вообще говоря, может отличаться от шага по времени
последовательного алгоритма SA, который мы будем обозначать как ∆ts. Дело в том, что
они имеют разный смысл и должны удовлетворять разным условиям. Шаг ∆ts для
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
7
последовательного алгоритма SA имеет традиционный смысл. С его помощью
определяется дискретное множество состояний эволюционирующей системы. Значение
этого
шага
определяется
соображениями точности.
или
условиями
устойчивости
алгоритма
SA,
или
Шаг ∆t для параллельного алгоритма определяет смену
этапов 1 и 2 и может превышать значение ∆ts. Единственное требование к выбору шага
∆t связано с
область
и,
возможностью использовать относительно небольшую приграничную
соответственно,
желанием
получить
хороший
коэффициент
распараллеливания. Между тем слишком малая ширина приграничной области не только
не нужна, но и вредна, так как при этом могут возникнуть проблемы с применимостью
исходного последовательного алгоритма SA к слишком «узкой» приграничной области.
Кроме того с уменьшением ∆t, увеличивается количество обменов между процессорами.
3. Приграничная область в многомерном случае
Если в одномерном случае приграничная область представляет собой несвязное
множество отрезков, число точек в каждом из которых невелико по сравнению
количеством точек в разделяемых ими подобластях, то в случае большего числа
измерений ситуация иная. Приграничная область может оказаться «слишком большой»
по отношению к размерам подобластей, что приведет к невозможности выполнить этап
2 за достаточно малое по сравнению с этапом 1 время. В этом случае можно применить
метод рекурсивной декомпозиции, который кратко опишем ниже.
В многомерном случае приграничная область, вообще говоря, является
некоторой связной областью. Рассмотрим простейшие случаи, когда вычислительная
область есть квадрат в двумерном случае (2D) и куб в трехмерном (3D). Обозначим
линейный размер (ширину) приграничной области через L. Тогда приграничная область
будет решеткой, составленной из полос шириной L для 2D задачи и плит поперечного
размера L для 3D задачи.
В одномерном случае область некорректных значений после первого этапа будет
представлять собой множество изолированных отрезков длинной L. Предполагается,
что число точек в каждом отрезке будет существенно меньше числа точек в исходных
подобластях. На границах этих отрезков будут известны корректные значения,
полученные на этапе 1. Поэтому мы можем после однократного выполнения этапа 1
перейти к завершающему этапу 2.
В задачах большей размерности, чтобы сохранить требуемую эффективность
параллельного счета, для приграничной области можно повторить этап 1. Тогда в 2D
случае область некорректных значений будет представлять собой множество
изолированных «крестов» ширины 2L, к расчету которых можно применить в
параллельном режиме процедуру этапа 2. При сделанных предположениях время
расчета будет существенно меньше времени первого этапа 1.
Илюшин А.И., Колмаков А.А., Меньшов И.С.
8
В случае 3D задачи этап 1 применяется для приграничной области дважды. После
первого раза область некорректных значений будет представлять собой трехмерную
решетчатую структуру, составленную из брусов поперечного размера L. Повторное
применение к последней этапа 1 сузит область некорректных значений до множества
изолированных трехмерных «ежей» диаметром 2L, расчет которых проводится по схеме
этапа 2. Ясно, что подобная рекурсивная декомпозиция области обобщается на случай
большего числа размерностей. При этом просто увеличивается число применений этапа
1 к приграничной области. Время выполнения всех расчетов, следующих за первым
выполнением этапа 1, в процессе такой рекурсивной декомпозиции будет оставаться
приблизительно таким же, как и в простейшем (1D) случае, рассмотренном в качестве
примера выше.
4.
Численные результаты
Для
демонстрации
предлагаемого
подхода
к
построению
параллельной
вычислительной модели, точности и эффективности ее работы, мы рассмотрим решение
двух простых задач. Это - одномерные задачи, решение которых зависит от одной
пространственной координаты и времени. Первая сводится к линейному уравнению
теплопроводности с заданной правой частью, которое решается на отрезке с заданными
начальными и граничными условиями. Правая часть подбирается специальным образом,
чтобы иметь точное аналитическое решение для сравнения с получаемыми численными
решениями.
Во
второй
задаче
рассматривается
одно
нелинейное
уравнение
теплопроводности, которое также обладает точным аналитическим решением. Оно
характеризуется наличием
бегущей волны, на фронте которой происходит резкое
изменение решения в малой пространственной области. На примере расчета этой задачи
мы хотим убедиться, насколько хорошо обеспечивается перенос особенностей решения
с одного вычислительного объекта на другой при использовании предлагаемой
параллельной вычислительной технологии.
4.1 Линейное уравнение теплопроводности.
Рассмотрим решение линейного одномерного уравнения теплопроводности с
правой частью следующего вида:
𝜕𝑢
𝜕𝑡
=
𝜕2 𝑢
𝜕𝑥 2
+ 𝑓(𝑥, 𝑡)
(1)
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
9
в области 0<x<L, t>0 с граничными условиями
𝑢(0, 𝑡) = 𝑎(𝑡)
𝑡>0
(2)
𝑢(𝐿, 𝑡) = 𝑏(𝑡)
𝑡>0
(3)
и начальным условием
𝑢(𝑥, 0) = 𝑐(𝑥)
0≤𝑥≤𝐿
𝑥
(4)
𝑡2
При 𝑎(𝑡) = 𝑡 2 , 𝑏(𝑡) = 𝑒 10 𝑡 2 , 𝑐(𝑥) = 0, 𝑓(𝑥, 𝑡) = 𝑒 2 (2𝑡 − 4 ) решением этой
𝑥
задачи является функция 𝑢(𝑥, 𝑡) = 𝑒 2 𝑡 2 . Именно при таких значениях и 𝐿 = 20
проводились тестовые расчеты, результаты которых обсуждаются ниже.
При численном решении данной задачи производилась дискретизация по времени
с шагом ∆t и пространству с шагом h. Последовательный алгоритм SA представлял
собой реализацию стандартной неявной разностной схемы:
m−1
um
n −un
∆t
=
m
m
um
n+1 −2un +un−1
h2
+ fnm
где верхний индекс m обозначает временной слой, нижний индекс n обозначает
номер ячейки, fnm - значение функции правой части 𝑓(𝑥, 𝑡) в точке (hn,m∆t). Граничные
условия определяются в рассматриваемой задаче заданием решения u в граничных
точках расчетной области. Если точка является внешней границей, значения берутся в
соответствии с уравнениями (2) и (3). Для внутренних точек значения берутся как
описано в разделе 2 (алгоритм композиции).
В численных экспериментах проводились параллельный и последовательный
расчеты, и их результаты сравнивались затем, как между собой, так и с имеющимся
аналитическим решением. Для параллельного расчета область разбивалась посередине
на 2 подобласти, в каждой из которых выделялись граничные полосы, которые
образовывали приграничную область, соответственно для их расчета использовалось
P=2 процессора.
Илюшин А.И., Колмаков А.А., Меньшов И.С.
10
Таким образом, численная модель решения задачи (1)-(4) определяется следующим
набором параметров:
∆t = шаг дискретизации по времени;
𝐾 = число шагов по времени
h = шаг дискретизации по пространству;
DN = число подобластей (во всех тестовых расчетах DN=2);
𝐿𝑠 = ширина приграничной полосы;
𝑁𝑠 = число расчетных точек в приграничной полосе;
L = ширина всей области (во всех тестовых расчетах L=20);
𝑁 = общее число расчетных точек во всей области;
𝑂𝑝 = относительная доля ширины приграничной полосы от ширины подобласти
Предполагаемая эффективность работы алгоритма по объему вычислений, не
учитывающая пересылок между процессорам, которую мы будем обозначать 𝐸,
определяется по формуле
𝐿/𝐷𝑁
𝐸 = 𝐿/𝐷𝑁+2𝐿 . При вычислениях процессорам кроме
𝑠
подобласти приходится рассчитывать соответствующую приграничную область, что и
учитывает формула. Главной целью тестирования было показать возможность
применения метода. Параллельный счет реализовывался виртуально на одной машине,
поэтому реальная эффективность алгоритма не рассчитывалась.
Предполагаемое ускорение расчета обозначим через 𝐴. При использовании
параллельного алгоритма число вычислений увеличивается, так как кроме DN
подобластей, необходимо просчитать DN-1 приграничную подобласть. На всех
1
процессорах кроме одного коэффициент увеличения количества вычислений равен 𝐸.
Соответственно, если не учитывать межпроцессорные взаимодействия и считать, что
скорость расчетов линейно зависит от числа ячеек, то ускорение при наличии
свободного процессора под каждую из подобластей можно считать по формуле: 𝐴 =
𝐷𝑁 ∗ 𝐸
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
11
В расчетах варьировались шаг по времени ∆t, шаг сетки ℎ и ширина приграничной
полосы 𝐿𝑠 . Для изменения ширины приграничной полосы, при фиксированном шаге
сетки изменялось соответствующее число точек 𝑁𝑠 . Счет производился до момента
времени 𝑡𝑚𝑎𝑥 =20.
Качество получаемых численных результатов оценивалось с помощью следующих
относительных невязок:
парал.
𝛿𝑠𝑝 =
посл.
−𝑢ℎ
|)
посл.
𝐿2 (𝑢ℎ )
𝐿2 (|𝑢ℎ
- относительная невязка между результатами расчетов
последовательного и параллельного алгоритмов;
парал.
𝛿𝑎𝑝 =
аналит.
−𝑢ℎ
|)
аналит.
𝐿2 (𝑢ℎ
)
𝐿2 (|𝑢ℎ
- относительная невязка между результатом расчета
параллельного алгоритма и аналитическим решением;
𝛿𝑠𝑎 =
посл.
аналит.
𝐿2 (|𝑢ℎ
−𝑢ℎ
|)
аналит. )
𝐿2 (𝑢ℎ
- относительная невязка между результатом расчета
последовательного алгоритма и аналитическим решением;
Невязки рассчитывались с помощью дискретной нормы 𝐿2 (𝑢ℎ ) = √∑ 𝑢ℎ 2.
В первой серии расчетов мы варьировали значения шага по времени и числа точек
2
сетки при условии выполнения соотношения Куранта: ∆t = h ⁄2. Фиксированными при
этом оставались значения параметров: Ls = 0,500000 , Op =5 %, E=0,909091,
A=1,818182.
Результаты численных расчетов отображены в таблице 1, где приводятся
относительные невязки (умноженные на 1000 для лучшей наглядности) в зависимости
от значения временного шага.
Даже на грубой сетке разность точного и численных решений несущественна. Она
визуально не обнаруживается, если результаты изобразить в виде графиков. Стремление
невязки последовательного метода и точного решения к нулю согласуется с порядком
аппроксимации используемой разностной схемы. Как видно, невязка параллельного
алгоритма так же стремится к нулю и несущественно отличается от невязки
последовательного метода.
Илюшин А.И., Колмаков А.А., Меньшов И.С.
12
Интересно, что невязка параллельного и последовательного алгоритмов также
стремится к нулю. Это объясняется тем, что при фиксированной ширине граничной
полосы меняется число ячеек в ней, в связи с варьированием шага сетки: при h=0,5 - Ns
=2, а при h=0,025 - Ns =21. Таким образом, в последнем тесте возмущения от
неправильных граничных условий на границе подобластей распространяются меньше
чем на 20 ячеек (или пренебрежимо мало, с учетом наличия машинной точности) и
параллельный метод дает те же результаты, что и последовательный.
Во второй серии расчетов варьировалась ширина приграничной полосы.
Фиксированными оставались параметры: ∆t = 0,001250, K=16000, h = 0,050000 и
1000δsa =0,03890. Последнее не менялось, так как варьированию подвергалась только
приграничная полоса, не влияющая на SA решение.
Результаты численных расчетов отображены таблице 2. Видно, что уже при
наличии только двух ячеек в приграничной полосе, невязка между последовательным и
параллельным
алгоритмами становится меньше, чем невязка последовательного
алгоритма и аналитического решения. Это согласуется с тем, что возмущение при
выбранных h и ∆t (по Куранту) за 1 шаг по времени распространяются на одну ячейку.
Стоит также заметить, что как и в предыдущем тесте, параллельный алгоритм дает даже
меньшую невязку с точным решением, чем последовательный. При увеличении
приграничной полосы эта невязка возрастает, поскольку результаты расчетов
параллельного и последовательного алгоритмов начинают совпадать с все большей
точностью. Эффективность вычислений при 3 ячейках в приграничной полосе
составляет более 96 %, что может дать очень хорошее ускорение.
В третьей серии расчетов варьировался шаг по времени. Шаг сетки при этом не
2
менялся. Таким образом, условие Куранта ∆t = h ⁄2 нарушалось, но это не приводило к
неустойчивости, так как в основе базового SA алгоритма применялась абсолютно
устойчивая неявная разностная схема. Значения остальных расчетных параметров
оставались неизменными: h=0,05, Ns = 4, Ls = 0,15, Op = 1,5 %, E =0,970874, A
=1,941748.
Численные результаты этой серии отображены в Таблице 3. Они вполне понятны и
указывают на необходимость
увеличения ширины приграничной полосы при
увеличении шага по времени, так как при этом происходит увеличение числа ячеек,
охваченных распространяющимся возмущением.
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
13
В четвертой серии расчетов варьированию подвергались одновременно и шаг по
времени ∆t, и размер приграничной полосы Ns . Шаг по времени последовательно
увеличивался в 2 раза, и при этом ширина полосы увеличивалась аналогичным образом.
Фиксированным параметром здесь был шаг сетки h=0,05.
Результаты приводятся в Таблице 4. Из этой таблицы видно, что невязка в
приведенных тестах остается примерно одинаковой, а невязка с точным решением, как и
следует ожидать, возрастает. Стоит отметить, что нет необходимости поддерживать
точность самого параллельного алгоритма (невязку с последовательным) – главная
задача
минимизация
предположить,
что
невязки
для
по
этого
отношению
необходимо,
к
точному
чтобы
решению.
невязка
Логично
параллельного
и
последовательного алгоритмов была не больше невязки последовательного и точного
решения. Это подтверждается последней строчкой таблицы, в которой шаг по времени
увеличен в 8 раз, при этом число ячеек в граничной полосе увеличено только до 5, а
невязки последовательного и параллельного алгоритмов с точным решением отличаются
мало. Это достаточно важно, так как если каждый раз расширять граничную полосу в
соответствии с увеличением шага по времени, то теряется эффективность вычислений.
Предпоследняя и последняя строчки таблицы это демонстрирует: разница в
эффективности составляет 6%, при этом нет потери в точности.
Последняя серия расчетов проводилась для оценки эффективности алгоритма при
расчетах больших задач. Для этого брались параметры L=1000, 𝑁=1000000, Ns = 500,
h=0,001, ∆t = 0,0001, K=5000. Число подобластей и вычислительных единиц P
варьировалось от 1 до 110 (с шагом 10), времена счета замерялись и таким образом
оценивалась
эффективность
алгоритма.
Необходимо
заметить,
что
ширина
приграничной области не менялась и соответственно при росте числа подобластей
занимала все большую долю от ширины каждой из них.
В
таблице
5
представлены
результаты
расчетов:
P
-
количество
подобластей/процессоров, 𝑇1 - время расчета одного шага по времени в миллисекундах
(общее время деленное на K), 𝐴 - ускорение относительно времени счета на одном
процессоре.
На Фиг. 1 представлен график зависимости 𝐴 от P и график линейной функции,
показывающий ускорение в случае идеального распараллеливания. Как видно,
эффективность расчетов начинает заметно отклоняться от идеальной, начиная с P=50,
Илюшин А.И., Колмаков А.А., Меньшов И.С.
14
при котором приграничная полоса занимает 2,5 % подобласти. При P=100 приграничная
полоса имеет ширину 5%, а приграничная область соответственно 10%, расчет шага
занимает 𝑇1 = 2,16 мс. Время расчета шага на 1 процессоре составляет 192,6 мс, если
разделить его на 100, то получим 1,926 мс - время счета при идеальном
распараллеливании. В наших расчетах 𝑇1 на 12 % больше идеального, из которых 10 %
сразу же можно отнести на счет дополнительных вычислений приграничных областей.
Оставшиеся 2 % составляют примерно 0,02 мс и соответствуют межпроцессорным
пересылкам.
4.2 Нелинейное уравнение теплопроводности.
Рассмотрим решение следующего нелинейного уравнения:
𝜕𝑢
𝜕𝑡
= (𝑢𝑎 𝑢𝑥 )𝑥
(5)
в области 0<x<L, t>0, с граничными условиями
1
𝑢(0, 𝑡) = (12𝑡)3
𝑡>0
𝑢(𝐿, 𝑡) = 0
𝑡>0
и начальным условием
1
𝑢(𝑥, 0) = (6(2𝑡 − 𝑥))3
0≤𝑥≤2
𝑢(𝑥, 0) = 0
2<𝑥
Один из классов общих решений уравнения (5) представим в виде [4]:
1
𝑢(𝑥, 𝑡) = (𝑎𝛾(𝛾𝑡 − 𝑥))𝑎
Это решение является эволюционным, имеет компактный носитель и представляет
собой распространение волны направо по оси x со скоростью 𝛾, определяемой
начальным и граничными условиями. В рассматриваемом примере 𝑎 = 3, 𝛾 = 2, L=30,
счет производится с момента времени 𝑡 = 1. Имеется в виду, что волна успевает к этому
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
15
моменту времени распространиться из точки 𝑥 = 0 до точки 𝑥 = 2. На отрезке 2 < 𝑥 <
30 задается нулевое начальное условие. Счет производился до момента времени tmax=13.
Как и в линейном случае для расчета данной задачи производилась дискретизация
по времени и пространству, алгоритм SA представлял собой реализацию разностной
схемы
m
m−1
um
n −un
∆t
=
m
m
m
𝑎 un+1 −un )−(um−1 )𝑎 (un −un−1 )
(um−1
1 ) (
1
ℎ
ℎ
i+
2
i−
2
h
um−1
1 =
i+
2
m−1
um−1
n+1 +un
2
,
,
в которой первые производные берутся неявно, а коэффициент 𝑢𝑎 берется явно с
предыдущего временного слоя. Стоит заметить, что данная задача достаточно сложна
для счета в виду особенности решения. Как правило, фронты волн аналитического и
численного решения не совпадают полностью, что сразу же дает ощутимую добавку к
невязке.
Область, как и в случае расчета линейного уравнения, делилась на две подобласти,
в каждой из которых выделялась приграничная полоса, использовались те же параметры
задачи, расчеты производились на P=2 процессорах.
В первой серии расчетов мы варьировали значения шагов по времени и числа точек
сетки. При этом соблюдалось условие ∆t =h/2. Данное условие было определено из вида
точного решения, с тем, чтобы фронт волны за 1 шаг по времени распространялся
только на одну ячейку. При отходе от этого условия в сторону увеличения шага по
времени невязка последовательного алгоритма (и, как следствие, параллельного) с
точным решением начинает резко расти.
Ширина приграничной полосы составляла 0,75, что равно 5% от ширины
подобластей, на которые делилась вся область; в случаях, когда сетка не позволяла
задать выбранную ширину точно, она минимально увеличивалась. Фиксированными
параметрами при расчетах оставались 𝐿𝑠 = 0,800000, 𝑂𝑝 = 5,333333, 𝐸 =0,90, 𝐴 =1,807229.
Результаты численных расчетов отображены в таблице 6, где приводятся
относительные невязки в зависимости от значения временного шага и числа узлов сетки.
Численные решения задачи и аналитическое решение задачи приведены на Фиг. 2 и 3.
Илюшин А.И., Колмаков А.А., Меньшов И.С.
16
Как видно из таблицы и графиков, при сравнительно схожих шагах по времени и
сетке невязки существенно больше, чем в линейном случае (в таблице они не умножены
на 1000, как в таблицах тестов линейного уравнения). При этом, если рассматривать
невязку на некотором удалении от фронта, то она сразу резко падает. Например, если не
учитывать значения, лежащие в окрестности фронта шириной 2, тест соответствующий
второй строчки таблицы 6 дает значения, приведенные в таблице 7.
В целом, видно стремление невязки к нулю, даже при не совсем точной
аппроксимации распространения фронта. При граничной полосе шириной в 5% от
размера подобласти невязка параллельного метода и точного решения несущественно
отличается от невязки последовательного. Учитывая, что при этом эффективность
составляет 90%, применение параллельного метода оправдано (при условии достаточно
быстрого взаимодействия между процессорами).
Во второй серии расчетов варьировалась ширина приграничной полосы.
Фиксированными оставались параметры: ∆t = 0,005000, K=2600, h=0,01, 𝛿𝑠𝑎 = 0,017775
Невязка последовательного метода фиксирована, так как менялась только граничная
полоса для параллельного метода.
Результаты численных расчетов отображены в таблице 8. Численные и
аналитические решения, соответствующие строчкам таблицы 1 и 3 приведены на Фиг. 4
и 5 (с увеличением для подобласти: 21 < 𝑥 < 27).
Как видно из приведенных таблиц и графиков, невязка ожидаемо падает с
увеличением ширины приграничной полосы. При ее доле в 3,33% от ширины
подобласти, невязка параллельного метода и точного решения приемлема и не сильно
отличается от соответствующей невязки последовательного алгоритма. Учитывая
эффективность 93,33%, применение параллельного алгоритма оправдано.
5.
Заключение
В заключение мы хотели бы остановиться на одном возможном обобщении
предлагаемого алгоритма композиции.
Пусть в некоторых частях области значения существенных переменных меняются
со скоростью значительно большей, чем в области в целом. Тогда в этих подобластях
шаги по пространству и времени при расчете должны быть существенно меньше шагов в
остальной части области. При одинаковых шагах по всей области мы либо сделаем
много ненужных вычислений, либо можем потерять важные особенности решения в
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
17
подобластях с обострениями. В этом случае можно использовать относительную
независимость
расчетов
для
подобластей,
характерную
для
предлагаемого
параллельного алгоритма.
Пусть на i-ом шаге счета некоторым способом, который мы здесь не будем
рассматривать, было обнаружено, что в некоторой подобласти скорость изменения
значений существенных переменных требует
меньшего шага по пространству и
времени. Тогда несложно реализуется динамическая
времени) декомпозиция
(перед следующим шагом по
части подобластей на меньшие с меньшими шагами по
пространству и времени. Конечно, можно было бы ограничиться только уменьшением
шагов в выбранных подобластях. Но тогда время счета в этих подобластях стало бы
существенно больше времени счета в остальных «медленных» подобластях и, вопервых, процессоры, на которых обсчитываются «медленные» подобласти, будут
простаивать, а, во-вторых, общее время счета существенно увеличится. В то же время
при декомпозиции «быстрых» подобластей на меньшие подобласти и выделении для
счета дополнительных процессоров время счета не увеличится.
Рассмотрим, как будет работать алгоритм при декомпозиции части подобластей и
уменьшении шагов внутри них. В этом случае часть внутренних границ будет разделять
«медленные» и «быстрые» подобласти.
Случай границ между однотипными
подобластями никаких проблем не создает. Пусть шаги по времени в двух соседних
областях отличаются. Тогда после окончании счета в фазе 1 алгоритма (независимый
счет подобластей с потенциально неправильными граничными значениями на
внутренних границах, взятыми из предыдущего шага) продвижение локального времени
в «медленной» подобласти будет больше продвижения локального времени в «быстрой»
подобласти. Заметим, что астрономическое время счета «быстрой» подобласти из-за
меньшего размера должно быть примерно в n раз меньшим для того, чтобы n «малых»
шагов по времени и один «большой» шаг заняли примерно одно астрономическое время.
Рассмотрим часть приграничной подобласти, располагающуюся в «медленной»
подобласти. На внутренней границе между подобластями будет находиться значение
искомой функции, взятое их предыдущего шага. На границе между приграничной
полосой и остальной частью «медленной» подобласти будет находиться правильное
значение для «большого» шага по времени. Где то внутри приграничной полосы будет
Илюшин А.И., Колмаков А.А., Меньшов И.С.
18
находиться правильное значение искомой функции для «малого» шага по времени.
Чтобы продолжить счет в быстрой подобласти, необходимо пересчитать i-ый шаг для
приграничной полосы в «медленной» подобласти с «малым» шагом по времени. Далее
для «быстрой» подобласти и приграничной полосы в «медленной» подобласти можно
сделать оставшиеся n-1 «малых» шага по времени стандартным образом. На этом
продвижение счета на «большой» шаг по времени закончится, и можно будет
переходить к следующему шагу. В заключение следует сказать, что абсолютно
необходима и обратная процедура композиции из нескольких, переставших быть
«быстрыми» подобластей одной «медленной» подобласти. Но эта процедура кажется
вполне очевидной.
Благодарности. Авторы выражают глубокую благодарность М.В.Якобовскому за
содержательное обсуждение статьи, которое в частности привело к созданию нового
варианта алгоритма для многомерного случая.
Список литературы
[1] Barry F. Smith, Petter E. Bjørstad, William Gropp. Domain Decomposition: Parallel
Multilevel Methods for Elliptic Partial Differential Equations - Cambridge University Press, 2004, pp.
1-18
[2] С. К. Годунов, А. В. Забродин, М. Я. Иванов, А. Н. Крайко, Г.П. Прокопов. Численное
решение многомерных задач газовой динамики – М.: Наука, 1976, 400 с.
[3] Четверушкин Б.Н. К вопросу об ограничении снизу на масштабы в механике сплошной
среды. // Матем. моделирование, 2005, т. 17, №4, стр. 27–39
[4] А.А. Самарский, В. А. Галактионов, С. П.Курдюмов, А. П. Михайлов. Режимы с
обострениями в задачах для квазилинейных параболических уравнений. – М.: Наука, 1987, 480 с.
[5] ost.kiam.ru
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
19
120
100
80
Расчет
60
Линейный
40
20
0
0
20
40
60
80
100
120
Фиг. 1. Времена счета и ускорение при многопроцессорных расчетах
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Илюшин А.И., Колмаков А.А., Меньшов И.С.
20
Фиг. 2. Сравнение численных SA и PA решений с аналитическим решением для всей
области при ∆t = 0.05, h = 0.1
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
Фиг. 3. Сравнение численных SA и PA решений с аналитическим решением для всей области
при ∆t = 0.01, h = 0.02
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
21
Илюшин А.И., Колмаков А.А., Меньшов И.С.
22
Фиг. 4. Сравнение численных SA и PA решений с аналитическим решением для всей
области при 𝐿𝑠 = 0.3
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
Фиг. 5. Сравнение численных SA и PA решений с аналитическим решением для всей
области при 𝐿𝑠 = 0.75
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
23
Илюшин А.И., Колмаков А.А., Меньшов И.С.
24
Таблица 1. Относительные невязки при одновременном варьировании шага по времени и
шага сетки.
∆t
0.125
0.005
0.000313
𝐾
160
4000
63900
h
0.5
0.1
0.025
1000𝛿𝑠𝑝
1000𝛿𝑎𝑝
0.863904
0.000928
0.000000
3.240711
0.153327
0.009786
1000𝛿𝑠𝑎
3.486388
0.153694
0.009786
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
25
Таблица 2. Относительные невязки при варьировании ширины приграничной полосы.
𝑁𝑠
𝐿𝑠
𝑂𝑝
1000𝛿𝑠𝑝
1000𝛿𝑎𝑝
𝐸
6
0.25
2.5%
0.000473
0.038719
0.952381
5
0.2
2%
0.001765
0.038241
0.961538
4
0.15
1.5%
0.006593
0.036809
0.970874
3
0.1
1%
0.024703
0.036980
0.980392
2
0.05
0.5%
0.098269
0.090362
0.990099
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Илюшин А.И., Колмаков А.А., Меньшов И.С.
26
Таблица 3. Относительные невязки при варьировании шага по времени.
𝐾
1000𝛿𝑠𝑝
1000𝛿𝑎𝑝
1000𝛿𝑠𝑎
0.001000
20000
0.004110
0.035000
0.036376
0.001250
16000
0.006593
0.036809
0.038903
0.002500
8000
0.024694
0.046805
0.051597
0.005000
4000
0.075002
0.079485
0.077135
0.010000
2000
0.192272
0.172832
0.128410
∆t
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
27
Таблица 4. Относительные невязки при варьировании приграничной полосы и шага по
времени.
∆t
𝑁𝑠
𝐾
𝐿𝑠
𝑂𝑝
0.001250
3
16000
0.100000
1%
0.024703
0.036980
0.038903
0.980392
0.002500
4
8000
0.150000
1.5%
0.024694
0.046805
0.051597
0.970874
0.005000
6
4000
0.200000
2%
0.037139
0.068723
0.077135
0.010000
10
2000
0.350000
3.5%
0.025433
0.118309
0.128410
0.934579
0.020000
13
1000
0.600000
6%
0.016505
0.223394
0.231215
0.892857
0.020000
6
1000
0.250000
2.5%
0.199141
0.218204
0.231215
0.952381
1000𝛿𝑠𝑝
1000𝛿𝑎𝑝
1000𝛿𝑠𝑎
𝐸
0.961538
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Илюшин А.И., Колмаков А.А., Меньшов И.С.
28
Таблица 5. Времена счета при варьировании числа подобластей и вычислительных единиц.
𝑇1
A
1
192,6
1
10
19,5
9,87
20
9,58
20,1
30
6,52
29,53
40
4,96
38,83
50
4,02
47,91
60
3,38
56,98
70
2,94
65,51
80
2,62
73,51
90
2,36
81,61
100
2,16
89,16
110
2
96,3
P
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
29
Таблица 6. Относительные невязки при одновременном варьировании шага по времени и
шага сетки.
∆t
𝐾
h
𝛿𝑠𝑝
𝛿𝑎𝑝
𝛿𝑠𝑎
0.05
260
0.1
0.094338
0.143051
0.105995
0.01
1300
0.02
0.025253
0.041316
0.031576
0.003333
3900
0.006667
0.007269
0.015462
0.013174
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Илюшин А.И., Колмаков А.А., Меньшов И.С.
30
Таблица 7. Относительные невязки, посчитанные без учета значений около фронта.
∆t
𝐾
h
𝛿𝑠𝑝
𝛿𝑎𝑝
𝛿𝑠𝑎
0.01
1300
0.02
0.002881
0.003052
0.000221
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Построение параллельной вычислительной модели
путем композиции вычислительных объектов
31
Таблица 8. Относительные невязки при варьировании ширины приграничной полосы.
𝑁𝑠
𝐿𝑠
𝑂𝑝
𝛿𝑠𝑝
31
0.3
2%
0.030088
0.035965
0.960000
51
0.5
3.33%
0.018916
0.026835
0.933333
76
0.75
5%
0.012560
0.022452
0.900000
101
1
6.66%
0.008239
0.020128
0.866667
126
1.25
8.33%
0.006204
0.019272
0.833333
151
1.5
10%
0.003765
0.018535
0.800000
𝛿𝑎𝑝
E
Илюшин А.И., Колмаков А.А., Меньшов И.С.. Построение параллельной вычислительной
модели путем композиции вычислительных объектов
Скачать