2011
ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА Управление, вычислительная техника и информатика
№ 1(14)
ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ
УДК 004.021:004.75
Е.Д. Маркус ИССЛЕДОВАНИЕ ПАРАЛЛЕЛЬНОЙ РЕАЛИЗАЦИИ МЕТОДА РАСЩЕПЛЕНИЯ ДЛЯ УРАВНЕНИЯ ТЕПЛОПРОВОДНОСТИ НА КЛАСТЕРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ1
Рассматривается параллельная реализация метода расщепления для уравнения теплопроводности; описываются результаты численного моделирования, проведённого на кластерной вычислительной системе; приводятся графики зависимости коэффициента ускорения от числа элементарных машин системы; определяется зависимость оптимального размера вычислительной системы от размерности модели.
Ключевые слова: схема расщепления, параллельные вычисления, распределённая обработка информации, кластерная вычислительная система.
Задачи механики сплошных сред относятся к классу трудоёмких, для их решения целесообразно применять распределённые вычислительные системы (ВС) с программируемой структурой [1, 2] и параллельные вычислительные методы.
Использование параллельных методов решения задач в теории позволяет получить обратную линейную зависимость времени их решения от количества используемых элементарных машин (ЭМ). Однако к такому идеальному ускорению удаётся приблизиться лишь при применении крупноблочного распараллеливания, и при условии, что время, затрачиваемое ВС на обмен данными между ЭМ, пренебрежительно мало по сравнению со временем, которое ВС тратит на счёт [1]. Практически же временные затраты на межмашинные обмены данными приводят к нелинейной зависимости общего времени выполнения параллельной программы от количества ЭМ.
1. Постановка задачи
Целью работы является определение оптимальных параметров, при которых достигается минимум времени выполнения параллельной программы на пространственно-распределённой мультикластерной вычислительной системе. Нелинейная зависимость времени выполнения программы от числа параллельных ветвей приводит к тому, что не всегда для решения задачи целесообразно задействовать все ресурсы ВС.
1 Работа выполнена в рамках интеграционного проекта № 113 СО РАН, при поддержке РФФИ (гранты № 09-07-90403, 08-07-00022, 09-07-00095, 09-02-12106), Совета по грантам Президента РФ для поддержки ведущих научных школ (грант НШ-5176.2010.9) и в рамках государственного контракта № 02.740.11.0006 с Минобрнауки РФ.
Решение широкого класса задач механики сплошных сред приводит к численному решению уравнений, подобных уравнению теплопроводности. Поэтому исследовав это уравнение и получив качественные оценки, мы одновременно получим рекомендации для параллельной реализации методов решения широкого ряда задач.
В качестве объекта исследования был выбран параллельный алгоритм реализации схемы расщепления [3] для уравнения теплопроводности = Пхх + иуу,
определённого в квадратной области ^ = {х, у е [0,1]} с заданными начальными и(0, х, у) = 0 (при любых Ух, у еО) и граничными и(/, х, у) = 1 (при любом Уt > 0) условиями.
Для построения численной модели в области О задаётся сетка, равномерная по пространственным (х = гИ , у = ]Н , где г,] = 0...Ы и И = 1/N) и по временной
(t = пт) осям. Значение сеточной функции и П = и (пт, гИ, }И). Для численного решения выбранной системы воспользуемся методом расщепления. Выбор метода обусловлен наличием естественного параллелизма, т.е. возможности выделения участков, в пределах которых возможны независимые вычисления.
Метод расщепления для модельной задачи в операторной записи имеет вид
и"+^ - и,
"/2
з _ Л ип+
я V
т/ 2
(1)
Здесь Лх, Лу - суть разностные операторы второй производной по пространственным переменным х и у соответственно. Начальные условия - и* = 0 , граничные условия - иП}- = иN = и П0 = и^ = 1 для Уг, ] .
2. Построение параллельного алгоритма
Выделим в алгоритме участки, где возможны независимые вычисления. Обозначим значение сеточной функции на целом шаге как и ■■ _ ип, и Жгз _ и"+^ -
V V V V
значение на дробном шаге, первое уравнение системы (1) представим в следующем виде:
Ж. л . - 2]¥- + Ж і
уу г+1, з ^УУ^~УУг-1,^
т/2 И2 ()
Положим в (2) а = т/2И2 , с = 1 + т/И2 . Для каждого Уj = 1,..., N -1 система уравнений примет вид
-аЖ2з + з _ аи0, + Ц3 = 73,
-аЖ,+!,з + сЖ,з - аЖ,-!,з _ и з = 7,3 ,
сЖЫ-1,з - аЖы-2,з _ аиыз + им-1,з = 7Ы-1,з ■)
Решение (3) определим методом прогонки в виде Щ = а, Щ+1,, + Р, . Подставив
это представление в итоговую систему уравнений, будем иметь соотношения для прогоночных коэффициентов:
а, = —^, в, = Ь+^. (4)
с - а • аг-1 ■ с - а • аг-1,
Начальные значения коэффициентов задаются таким образом: а0, = Р0, = 0. Назовём «горизонтальной прогонкой» процесс решения системы (3).
Произведя для каждого У г = 1,., N -1 аналогичные выкладки со вторым шагом исходной системы (1), получим следующую систему уравнений:
-аи{2 + си 1 = аЩ, 0 + Щ = ¥п, -аии,+1 + си, - аи,,^ ^,
сиг, N-1 - аиг, N - 2 = aWiN + Щ', N-1 = ^', N-1.J
(5)
Отметим, что для вычисления столбца и, = (иг0,...,иш) требуются лишь значения столбца Wi = (Щ 0,...,Щт), которые рассчитаны на предыдущем шаге (3).
Решение системы (5) будем искать тем же методом прогонки (4). Назовём этот процесс «вертикальной прогонкой».
Таким образом, реализация метода расщепления для выбранной задачи (1) сводится к решению 2 х Т х N систем уравнений (3) и (5) с квадратными трёхдиагональными N х N матрицами (здесь N - размерность сетки по пространственным переменным г и , , а Т - размер сетки по временной переменной п).
3. Построение параллельной программы
В качестве специализированной (логической) структуры вычислительной системы был выбран линейный массив из р элементарных машин, соединённых двунаправленными линиями связи. Разделим область моделирования О равномерно вдоль оси , на р сегментов. Вычисления на каждом из сегментов Ок оформим в виде ветви параллельной программы, которая будет работать на отдельной ЭМк .
Специфика выбранного параллельного алгоритма и структуры ВС обеспечивает то, что каждая ветвь к параллельной программы взаимодействует лишь с ветвями, выполняющимися на соседних ЭМк-1 и ЭМк +1 .
При выполнении первого шага метода расщепления (3) ветви параллельной программы работают в конвейерном режиме (рис. 1): а) для У, = 1,...,N-1 ветвь
к принимает от ветви к -1 значения прогоночных коэффициентов аг ■, Рг- ■,
вычисляет свою часть по формулам (4) и передаёт ветви к +1 значения а^ ,, ,; б) ветвь к принимает от ветви к +1 значения Щ ^ +1,, по формуле
= а, • +1, + р, восстанавливает значения сеточной функции в сегменте Ок
и передаёт ветви к -1 значения t,. Здесь , гШр - это соответственно левая и правая границы сегмента Ок по оси г .
Рис. 1. Конвейерная схема взаимодействия элементарных машин
Отметим, что при выполнении второго шага метода расщепления (5) все ветви параллельной программы работают одновременно и независимо.
Таким образом, для каждого временного шага n каждая элементарная машина принимает участие в решении исходной задачи для сегмента матрицы, размером N0 х N (где N0 и N/ p), и в 6 х N операциях точечного приёма/передачи данных с соседними элементарными машинами.
4. Результаты моделирования
Численное моделирование проводилось на сегменте пространственно-распределённой мультикластерной вычислительной системы ЦПВТ ГОУ ВПО «СибГУ-ТИ» [1, 4], укомплектованной двухпроцессорными четырёхъядерными вычислительными узлами. Коммуникационная среда построена на базе технологии Gigabit Ethernet. В качестве элементарной машины служит отдельное ядро вычислительного узла. Программный код параллельной реализации метода расщепления для выбранной модели был написан на языке программирования C++. Для организации межпроцессорного взаимодействия использована библиотека стандарта MPI -MPICH 1.21.
Замер времени выполнения параллельной программы проводился средствами библиотеки MPI. Время замерялось с началом и остановом основного цикла вычислений в корневой ветви параллельной программы, выполняющейся на ЭМ0, и не включало в себя время инициации программы, начальной рассылки данных и заключительный сбор данных в корневую ветвь параллельной программы.
Тестовые запуски проводились для размерности сетки N = 500, 1000, 2500, 5000 и T = 100 (рис. 2, 3). Размер сегмента вычислительной системы (количество параллельных ветвей) варьировался: 1, 4, 8, 12, 16, 20, 24, 28, 32, 40, 48, 56, 64, 72, 80. Для каждого варианта проводилось по 10 тестовых запусков и вычислялось среднее арифметическое времени выполнения, т.к., кластер ЦПВТ является вычислительной системой коллективного использования, использовать который в однопользовательском режиме невозможно.
Получены графики времени выполнения Тр параллельной программы и коэффициента ускорения хp для различных условий моделирования и определены оптимальные значения количества вычислительных узлов в зависимости от размера модельной сетки.
Снижение коэффициента ускорения хp обусловлено спецификой алгоритма,
подразумевающего большое число точечных обменов между «соседними» ветвями, отсутствием групповых операций приёма/передачи данных и тем, что при большом количестве параллельных ветвей размер сегмента данных, обрабатываемого каждой ветвью, становится заметно меньше. Так, например, при размере сетки N = 500 и количестве параллельных ветвей p = 80 характерный размер
сегмента N0 области данных Q.k составляет всего и 6 .
*
5
X
>и
Л
§
О
н
X
>и
X
и
5
Количество параллельных ветвей
Рис. 2. Зависимость коэффициента ускорения Хр от числа элементарных машин для сеток 500x500, 1000x1000, 2500x2500 и 5000x5000
*
5
X
>и
Л
§
О
н
X
>и
X
и
5
Количество параллельных ветвей
Рис. 3. Зависимость времени выполнения параллельной программы Тр от числа элементарных машин для сетки 1000x1000
Итого: особенности параллельного алгоритма реализации схемы расщепления для уравнения теплопроводности, пространственная распределённость вычислительных узлов и аппаратные характеристики коммуникационной среды объясняют длительность операций приёма/передачи данных, что, в итоге, приводит к заметным накладным расходам.
Заключение
В работе исследована параллельная реализация метода расщепления для уравнения теплопроводности и проведено численное моделирование с использованием мультикластерной ВС ЦПВТ ГОУ ВПО «СибГУТИ».. Параллельная программа и межпроцессорное взаимодействие реализованы с использованием языка программирования С++ и библиотеки МР1СН 1.21.
Результаты моделирования для различных размерностей модели и вычислительной системы показали нелинейную зависимость коэффициента ускорения от количества элементарных машин, задействованных в моделировании. Анализ данных позволяет определить, исходя из возможностей кластера, оптимальное число параллельных ветвей, которое следует задействовать для получения результата в кратчайшее время.
ЛИТЕРАТУРА
1. Хорошевский В.Г. Архитектура вычислительных систем. М.: Издательство МГТУ им. Н.Э. Баумана, 2008.
2. Хорошевский В.Г. Распределённые вычислительные системы с программируемой структурой // Вестник СибгУТИ. 2010. № 2(10).
3. Яненко Н.Н. Некоторые вопросы теории модульного анализа и параллельного программирования для задач мат. физики и МСС. М.: Наука, 1982.
4. Ресурсы Центра параллельных вычислительных технологий ГОУ ВПО «СибГУТИ». ЦКЪ: http://cpct.sibsutis.ru. (дата обращения: 10.11.2010).
Маркус Егор Дмитриевич
Институт физики полупроводников СО РАН
E-mail: egor.marcus@gmail.com
Поступила в редакцию 3 декабря 2010 г.