Улучшение локальности параллельных алгоритмов численного решения двумерных квазилинейных параболических уравнений

УДК 519.6

Улучшение локальности параллельных алгоритмов численного решения двумерных квазилинейных параболических уравнений

С. В. Баханович*, Н. А. Лиходед^, П. А. Мандрик^

* Институт математики НАН Беларуси ул. Сурганова, д. 11, Минск, Республика Беларусь, 220072 ^ Факультет прикладной математики и информатики Белорусский государственный университет пр. Независимости, д. 4, Минск, Республика Беларусь, 220030

Уравнения параболического типа описывают процессы нелинейной теплопроводности, диффузии заряженных частиц в плазме, диффузии и дрейфа примесных атомов в полупроводниковых структурах, в химической кинетике. При численном решении практических задач такого рода появляются трудности, обусловленные недостаточными мощностью и объёмом оперативной памяти персонального компьютера. Возникает задача построения параллельных методов и алгоритмов для численного решения параболических уравнений на суперкомпьютерах. Одним из методов численного решения многомерных параболических уравнений является локально-одномерный метод. В работе предлагается параллельная реализация локально-одномерного метода численного решения линейных и квазилинейных двумерных параболических уравнений с краевыми условиями первого рода на суперкомпьютерах с распределённой памятью. Параллельный алгоритм построен с учётом локализации данных — операции и данные перераспределены между процессами таким образом, что значительная часть данных приватизирована процессами и не требует коммуникационных операций. Приведены результаты численных экспериментов.

Ключевые слова: параллельные вычисления, локализация данных, параболические уравнения, локально-одномерный метод.

1. Введение

Уравнения параболического типа описывают процессы нелинейной теплопроводности, диффузии заряженных частиц в плазме, диффузии и дрейфа примесных атомов в полупроводниковых структурах, фильтрации газов и жидкостей в пористых средах, в химической кинетике. При численном решении практических задач такого рода появляются трудности, обусловленные недостаточными мощностью и объёмом оперативной памяти персонального компьютера. Возникает задача построения параллельных методов и алгоритмов для численного решения параболических уравнений на суперкомпьютерах.

В работах [1,2] предложены параллельные реализации локально-одномерного метода численного решения линейных и квазилинейных двумерных параболических уравнений с краевыми условиями первого рода на суперкомпьютерах с распределённой памятью. Параллельные реализации основаны на естественном параллелизме локально-одномерного метода. Вычислительные процессы на каждом временном слое могут выполняться независимо, но при переходе к новому слою требуется обращение каждого процесса к локальной памяти всех других процессов. С ростом числа используемых процессов это приводит к большим накладным расходам на коммуникационные операции.

В этой работе предлагается отказаться от использования части естественного параллелизма и получить параллельные алгоритмы с улучшенной локальностью. Локальность алгоритма — это его вычислительное свойство, отражающее степень использования памяти с быстрым доступом [3,4]. При многопроцессорной обработке памятью с быстрым доступом считается локальная память процессора. Локальность параллельного алгоритма, предназначенного для реализации на компьютерах с распределённой памятью, напрямую определяет коммуникационные затраты при выполнении программы.

Статья поступила в редакцию 22 сентября 2013 г.

212 Вестник РУДН. Серия Математика. Информатика. Физика. № 2. 2014. С. 211-215

2. Вычислительный алгоритм локально-одномерного

метода

Рассмотрим в области = С х [0 < Ь < Т], С = [0 < х\ < 11] х [0 < х2 < к], квазилинейное параболическое уравнение

ди ( д ( ди \ д \

Ж = ХД ^ ьт) + ^—

т=1 44 ' '

— д(х,1,и)и + / (х,1,и), (1) д(х,1,и) > 0, ж = (ж1,ж2),

с начальными

Цж, 0) = ио

и краевыми

к = /Ах,1),

условиями.

Введём на отрезке [0 < £ < Т] сетку узлов шт = {Ъ^ = ]т, ] = 0, 1,..., ,]0, ]0т =

Т}; в области С введём сетку узлов Щ, = {х^1 = г1Н1, г1 = 0, 1, ..., М1, М1И1 =

11, = г2к2, г2 = 0, 1, ..., N2, = 12}. Если согласно [5] осуществить

дифференциальное расщепление задачи (1)-(3), затем построить итерационный процесс и применить метод прогонки для решения возникающих систем линейных алгебраических уравнений, то получим алгоритм приближенного решения задачи (1)-(3). Данный подход к решению задачи подробно описан в работе [2].

Алгоритм решения задачи (1)-(3) схематично можно представить следующим образом (циклы, итерации которых заведомо можно выполнять независимо, запишем как ёораг): ао з = 1, 30

аораг 12 = 1, N2 — 1 ао в = 0, ям ао г1 = 1, ы1 — 1

У(1)(Ч,12) = У(1){Ч,12) епаао

ао г1 = 1, ы1 — 1 а

¡3(п + 1) = Р2 (а(п), ¡3(п), у (2) (4,12), У(1)(Ч — М2), У(1)(п,г2), У(1)(ч +1,12)) епаао

ао г1 = 1, ы1 — 1

У{1)(Я1 — 11,12) = а(И1 — п +1)у(1)(Ы1 — 11 +1,г2) + ^(N1 — 11 +1) епаао епаао (в) епааораг

аораг = 1, N1 — 1

ао в = 0, ям

ао %2 = 1, N2 — 1 в

У(2)(Ч,г2) = У(2)(Ч,г2) епаао

ао %2 = 1, N2 — 1

а

/3(г2 + 1) = Р4 (а(12), 13(12), У(1)(ч,12), У(2)(ч,12 — 1), У(2)(ч,г2), У(2)(ч,12 +1)) епаао

ао %2 = 1, N2 — 1

У

enddopar enddo

Здесь а и ß — коэффициенты прогонки, возникающие при решении промежуточных систем линейных алгебраических уравнений. Число sm в алгоритме задаёт максимальное количество итераций. Конечные значения у(2)(^1,^2) являются приближенным решением задачи (1)—(3).

3. Параллельный алгоритм с улучшенной локальностью

Для отображения алгоритмов на параллельные компьютеры с распределённой памятью требуется распределить операции алгоритма и данные между процессами, установить порядок выполнения операций в каждом процессе и организовать обмены данными [6].

На основе алгоритма, описанного в предыдущем разделе, можно построить параллельный алгоритм, в котором операции и данные перераспределены между процессами таким образом, что значительная часть данных приватизирована процессами и не требует коммуникационных операций. При этом теряется использование части естественного параллелизма, но за счёт локализации данных время реализации параллельного алгоритма может существенно уменьшиться.

Пусть Р число процессов, предназначенных для реализации алгоритма, числа Q2 и г2 связаны соотношением r2 = \(N2 — 1)/Q2~\. Будем предполагать, что г1 = (N1 — 1)/Р является целым числом. Приведём псевдокод выполнения алгоритма. Для каждого процесса р, 0 < р < Р — 1:

do 3 = 1, jo do s = 0, sm

do q-2 = 0, Q2 — 1

do 12 = 1 + q2Г2, min ((q2 + 1)r2, N2 — 1) // Начало тайла 0-типа do ii = 1 + pri, (p + 1)r\

V(l)(il,i2) = У(1)(г1,%2) enddo

do ii = 1 + pri, (p + 1)ri

(s s s \

a

enddo

enddo (12) // Конец тайла 0-типа. Обмен данными enddo (q2) do q2 = 0, Q2 — 1

do 12 = 1 + q2Г2, min ((q2 + 1)^2, N2 — 1) // Начало тайла 1-типа do ii = 1 + (P — p — 1)ri, (P — p)ri

V

enddo

enddo

do ii = 1 + pri, (p + 1)ri // Начало тайла 2-типа do s = 0, sm

do i2 = 1, N2 — 1

s

V(2)(ii,i2) = У(2)(П,г2) enddo

do i2 = 1, N2 — 1

a

ß(i2 + 1) = F4 (a(i2), ß(i2), y(i)(h,i2), У (2) (4,1-2 — 1), У(2)(ч,12), У(2)(ч,г2 + 1)) enddo

do i2 = 1, N2 — 1

V

214 Вестник РУДН. Серия Математика. Информатика. Физика. № 2. 2014. С. 211-215

епббо (гх) // Конец тайла 2-типа. Обмен данными не требуется.

епббо

Используются три типа зерна вычислений (три типа тайлов). После вычислений тайлов 0-го и 1-го типов требуются коммуникационные операции небольшого объёма. Для выполнения операций тайлов 2-го типа коммуникационных операций не требуется вообще, так как все необходимые для вычислений данные находятся в локальной памяти процесса.

Отметим, что для численного решения линейных двумерных параболических уравнений (частный случай уравнения (1)) не требуется строить итерационный процесс с итерациями по 8.

На рис. 1 приведены результаты вычислительных экспериментов на кластере СКИФ-БГУ при М1 = М2 = 1440, ]0 = 25, г2 = 15. Улучшение локальности привело к значительному уменьшению времени выполнения алгоритма.

Кол-во процессов

Рис. 1. Результаты выполнения алгоритмов с естественным параллелизмом и локализацией данных на суперкомпьютере СКИФ-БГУ

4. Заключение

Построен параллельный алгоритм, в котором операции и данные перераспределены между процессами таким образом, что значительная часть данных приватизирована процессами и не требует коммуникационных операций. Предложенным способом можно улучшить локальность и некоторых других параллельных алгоритмов, требующих групповых коммуникационных операций (обращение каждого процесса к локальной памяти всех других процессов). В частности, можно построить новые параллельные алгоритмы, реализующие метод переменных направлений.

Литература

1. Параллельная реализация локально-одномерного метода численного решения двумерных параболических уравнений / Н. А. Лиходед, С. В. Бахано-вич, Г. М. Заяц, В. А. Цурко // Информатика. — 2010. — Т. 17, № 4. — С. 72-80. [Parallel Implementation of Locally One-Dimensional Method for Numerical Solution of Two-Dimensional Parabolic Equations / N. A. Likhoded, S.V. Bakhanovich, G.M. Zayats, V.A. Tsurko // Informatics. — 2010. — Vol.17, No 4. — Pp. 72-80. ]

2. Параллельная реализация локально-одномерного метода численного решения двумерных параболических уравнений / С. В. Баханович, Г. М. Заяц, Н. А. Лиходед, С. А. Артемчик // Международный конгресс по информатике: информационные системы и технологии CSIST'2011, Минск, Беларусь. БГУ. — 2011. — Т. 2. — С. 76-81. [Parallel Implementation of Locally One-Dimensional Method for Numerical Solution of Two-Dimensional Parabolic Equations / S.V. Bakhanovich, G.M. Zayats, N. A. Likhoded, S.A. Artemchik // International Congress on Computer Science: Information Systems and Technologies (CSIST'2013). — 2011. — Vol.2. — Pp. 76-81. ]

3. Garcia J., Ayguade E., Labarta J. A Framework for Integrating Data Alignment, Distribution and Redistribution in Distributed Memory Multiprocessors // IEEE Transactions on Parallel and Distributed Systems. — 2001. — Vol. 12, No 4. — Pp. 416-430.

4. Адуцкевич Е. В., Лиходед Н. А., Сикорский А. О. К распараллеливанию последовательных программ: распределение массивов между процессорами и структуризация коммуникаций // Кибернетика и системный анализ. — 2012. — № 1. — С. 144-163. [Adutskevich E.V., Likhoded N.A., Sikorskiy A.O. By Parallelization of Sequential Programs: Distribution of Arrays Between Processors and Structuring Communications // Cybernetics and Systems Analysis. — 2012. — No 4. — Pp. 144-163. ]

5. Самарский А. А. Теория разностных схем. — М.: Наука, 1989. [Samarskiy A. A. The Theory of Difference Schemes. — Moscow: Nauka, 1989. ]

6. Воеводин В. В., Воеводин В. В. Параллельные вычисления. — СПб.: БХВ-Петербург, 2002. [Voevodin V. V., Voevodin Vl. V. Parallel Computing. — Saint Petersburg: BHV-Peterburg, 2002. ]

UDC 519.6

Improvement of Locality of Parallel Algorithms of the Numerical Solutions of the Two-Dimensional Quasilinear

Parabolic Equations

S. V. Bakhanovich*, N. A. Likhodedt, P. A. Mandrikt

* Institute of Mathematics, NAS of Belarus, 11 Surganov str., Minsk, Republic of Belarus, BY-220072 ^ Faculty of Applied Mathematics and Computer Science

Belarusian State University 4, Nezavisimosti ave., Minsk, Republic of Belarus, 220030

The equations of parabolic type describe processes of nonlinear heat conductivity, diffusions of the loaded particles in plasma, diffusion and drift of impurity atoms in semiconductor structures, in chemical kinetics. At the numerical solution of practical tasks such there are the difficulties caused by the insufficient capacity and volume of memory of the personal computer. There is a problem of creation of parallel methods and algorithms for the numerical decision the parabolic equations on supercomputers. One of methods of the numerical solution of the multidimensional parabolic equations the locally one dimensional method is. Parallel realization of a locally one method for numerical solutions of the linear and quasilinear two-dimensional parabolic equations on supercomputers with the distributed memory is offered. The parallel algorithm is constructed taking into account locality of data — the operations and data are distributed between processes in such a way that the considerable part of data is privatized by processes and doesn't need communication operations. Results of numerical experiments are given.

Key words and phrases: parallel computation, data locality, data alignment, parabolic equations, locally one dimensional method.