Научная статья на тему 'Распределение вычислительной нагрузки между узлами суперкомпьютерного кластера при расчетах задач газовой динамики с дроблением расчетной сетки'

Распределение вычислительной нагрузки между узлами суперкомпьютерного кластера при расчетах задач газовой динамики с дроблением расчетной сетки Текст научной статьи по специальности «Математика»

CC BY
164
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СУПЕРКОМПЬЮТЕР / МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ / БЛОЧНО-СТРУКТУРИРОВАННАЯ РАСЧЕТНАЯ СЕТКА / БАЛАНСИРОВКА ВЫЧИСЛИТЕЛЬНОЙ НАГРУЗКИ

Аннотация научной статьи по математике, автор научной работы — Рыбаков Алексей Анатольевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Рыбаков Алексей Анатольевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Распределение вычислительной нагрузки между узлами суперкомпьютерного кластера при расчетах задач газовой динамики с дроблением расчетной сетки»

УДК 004.75

Рыбаков А.А.

Межведомственный суперкомпьютерный центр Российской академии наук - филиал Федерального государственного учреждения «Федеральным научныи центр Научно-исследовательскии институт системных исследовании Россиискои академии наук», г. Москва,

Россия

РАСПРЕДЕЛЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ НАГРУЗКИ МЕЖДУ УЗЛАМИ СУПЕРКОМПЬЮТЕРНОГО КЛАСТЕРА ПРИ РАСЧЕТАХ ЗАДАЧ ГАЗОВОЙ ДИНАМИКИ С ДРОБЛЕНИЕМ РАСЧЕТНОЙ СЕТКИ

АННОТАЦИЯ

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

КЛЮЧЕВЫЕ СЛОВА

Суперкомпьютер; математическое моделирование; блочно-структурированная расчетная сетка; балансировка вычислительной нагрузки.

Rybakov A.A.

Joint Supercomputer Center of the Russian Academy of Sciences - branch of Scientific Research Institute of System Analysis of the Russian Academy of Sciences, Moscow, Russia

COMPUTATIONAL WORKLOAD DISTRIBUTION BETWEEN SUPERCOMPUTER NODES FOR FLUID DYNAMICS CALCULATIONS WITH GRID FRAGMENTATION USING

ABSTRACT

In the article the problem of block-structured grid processing computational workload distribution between supercomputer nodes is considered. Grid inner representation architecture, grid fragmentation mechanism and distribution grid blocks between calculation processes are described.

KEYWORDS

Supercomputer; mathematical modeling; block-structured calculation grid; computational workload balancing.

При численном моделировании задач газовои динамики часто используют блочно-структурированные сетки [1,2]. Блочно-структурированные сетки состоят из отдельных блоков, каждьш из которых представляет собои упорядоченным трехмерныи массив условно кубических ячеек. Упорядоченность размещения ячеек позволяет быстрее производить вычисления и снижает требования к объему памяти, однако строить блочно-структурированные сетки гораздо сложнее, чем неструктурированные.

Блочно-структурированные сетки могут иметь сложную форму. Для доступа к отдельным ячеикам блока вводятся три индекса, связанные с криволинеинои системои координат блока. Система координат задается тремя линиями (I, J, K), каждая из которых связывает пары противоположных гранеи блока. Блоки могут граничить между собои. Граница между блоками описывается интерфеисом. Один интерфеис описывает соприкосновение двух блоков прямоугольными подобластями своих гранеи. При этом системы координат двух соседних блоков не обязаны согласовываться между собои.

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

Расчет газодинамической задачи носит итерационный по времени характер. Для каждой итерации по времени выполняется пересчет данных ячеек согласно тои или инои вычислительнои схеме. Во время обработки однои ячеики возникает потребность обращаться за данными к ячеикам ее окрестности (в простеишем случае это просто данные соседних по граням ячеек, но могут использоваться и используются более сложные структуры окрестностеи. Во время произведения расчетов газодинамическои задачи различные блоки сетки обрабатываются независимо друг от друга. При этом некоторые ячеики обрабатываемого блока должны обращаться за данными к ячеикам соседних блоков. Это происходит в том случае, если окрестность ячеики расположена сразу в нескольких блоках. Для эффективного счета необходимо обеспечить функционал быстрого обмена данными между блоками. Если два соседних блока обрабатываются на разных узлах суперкомпьютерного кластера, то для организации таких обменов можно использовать Message Passing Interface [4].

Одним из важнеиших деиствии управления расчетнои блочно-структурированнои сеткои при выполнении вычислении на суперкомпьютере является дробление ее блоков. Так как при запуске задач на суперкомпьютере постоянно возрастает степень параллельности (используется все больше параллельных процессов обработки блоков сетки), то для сохранения равномерности распределения блоков по вычислительным процессам требуется уметь измельчать блоки. Блок сетки может быть разделен на два блока по любому из трех направлении: I, J, K.

Кроме блоков сетка содержит другие объекты, которые требуют корректировки после разделения блока. Сюда относятся интерфеисы, описывающие касание блоков друг друга. На границе расчетнои области граничные условия задаются с помощью специальных объектов, которые также должны быть разделены в случае пересечения их линиеи разреза блока. Также должны быть по необходимости разделены области, описывающие начальные условия. Каждыи из этих объектов имеет жесткую привязку к блоку, а значит после дробления может возникнуть необходимость разделения этого объекта.

Граничные условия и области начальных условии обрабатываются наиболее просто и похожим образом. Рассмотрим, например, граничные условия в двумерном случае (в координатах

Ш-

I

I BCond 2 1-1---г

BCond 1

I-'- 1

I I

f

-• щ *--

; •

Block

_^ |Линия разреза

1+

Рис.1. Дробление блока Block по линии разреза, обозначенной красным, провоцирует дробление граничного условия BCond 2, но не влияет на граничное условие BCond 1

Пусть блок Block должен быть разрезан по направлению I+ как показано на рис. 1. Пусть данныи блок имеет граничные условия по направлению J+. Тогда возможны два варианта. Либо линия разреза не пересекает граничное условие, и тогда граничное условие целиком отходит одному из результирующих блоков (BCond 1). Если же линия разреза проходит через граничное условие, то данное граничное условие также должно быть разделено, и его части отоидут двум результирующим блокам (рис. 2).

Такая же ситуация может сложиться в отношении областеи начальных условии. В случае дробления интерфеисов могут быть более сложные ситуации дробления, но их рассмотрение выходит за рамки даннои статьи.

Для равномерного распределения блоков сетки по вычислительным процессам рассмотрим следующую задачу разделения множества весов на т различных множеств.

New ВCond 1 New BCond 2

1+

New Block 1

ВСоп Г- 1 d 1 -г i i i i i i

т- -г

New Е lock 2

1+

Рис.2. Результат дробления блока Block из рис. 1

Рассмотрим множество X вещественных чисел x¿ > 0 для i E N где N = [1,п]. Рассмотрим также множество индексов j E M, где M = [1,т]. Будем говорить, что определено разбиение множества X на m множеств, если введена функция y(i): N ^ М. Множество всех функции разбиения будем обозначать r(N,M). Веса результирующих множеств будем определять естественным образом для j E M:

Xj = YiiEN,y(i)=j xí.

Требуется наити такую функцию разбиения у E Í(N,M), чтобы минимизировать наиболее тяжелое из результирующих множеств.

min maxXj.

yEr(N,M) JEM J

Задача может быть расширена на случаи распределения вычислительнои нагрузки между различными вычислителями суперкомпьютера (например процессорами Intel Xeon и сопроцессорами Inte Xeon Phi). При этом формулировка задачи меняется только в части приведения всех узлов к одному показателю с помощью весовых коэффициентов.

Коэффициентом приведения k(J) для j E M назовем такую положительную функцию k(J):M ^ М+, что время выполнения нагрузки k(J) на узле j не зависит от j. Тогда в общем виде задача о равномерном разбиении множества весов на m множеств с коэффициентами приведения k(J) для j E M формулируется следующим образом. Требуется наити такую функцию разбиения у E r(N,M), чтобы минимизировать наиболее тяжелое из результирующих множеств с учетом коэффициентов приведения:

min max(K(i)Xj).

yEr(N,M) jEM "

Данная задача имеет практическое применение при распределении вычислительнои нагрузки между вычислителями гетерогенного суперкомпьютера. В даннои статье рассматривается только задача разбиения множества весов на m множеств без учета коэффициентов приведения.

Опишем жадньш алгоритм равномерного разбиения множества весов на m весов следующим образом. Все веса записываются в массив необработанных весов. После того, как веса будут обрабатываться, они будут удаляться из массива. Алгоритм работает до тех пор, пока массив необразованных весов не пуст. Если в массиве остались элементы, то берем самыи тяжелыи из них. Далее ассоциируем этот элемент с тем результирующим множеством, для которого сумма ассоциированных с ним весов на текущии момент минимальна. После чего удаляем этот элемент из массива необработанных и продолжаем работу.

Приведем без доказательства оценку эффективности работы алгоритма. Для удобства будем считать, что изначальное множество весов упорядочено по убыванию.

Определим остаточный член r¿ для i E N по следующей формуле:

r¿ = max(xi--^Y^=ixt,0).

Тогда можно доказать следующее соотношение:

maxXj — {Х> < max г.,

jEM J ÍEN

где

-i jEM Xj.

(X) =

т 7

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

Задачу о равномерном распределении весов по результирующим множествам можно применить для равномерного распределения блоков по вычислительным процессам суперкомпьютера в предположении, что все процессы равнозначны (не рассматривается случаи гетерогенной системы). Для этого отметим следующие моменты. В качестве веса блока нужно взять количество его ячеек. Так как абсолютно равномерное распределение блоков по вычислительным процессам не всегда возможно, то нужно принять порог максимально допустимого отклонения количества ячеек одного процесса от среднего значения, при достижении которого распределение можно считать успешным. Экспериментальным путем установлено, что порог максимального отклонения в 10% является достаточным для достижения эффективного распределения. Для оценки качества распределения текущего набора весов можно воспользоваться оценками эффективности, приведенными выше. Если текущее распределение не удовлетворяет допустимому порогу отклонения количества ячеек от среднего значения, то следует раздробить наиболее крупные блоки, после чего повторно применить алгоритм жадного распределения.

Предложенные методы равномерного распределения вычислительнои нагрузки между узлами суперкомпьютерного кластера были опробованы на суперкомпьютере МВС-10П [5], находящемся в МСЦ РАН. Приведем некоторые результаты, которые были получены для двух расчетных сеток.

Первая рассматриваемая сетка, содержит 13 блоков, 80 интерфеисов, 148 граничных условии, 13 областеи начальных условии и 5750102 ячеики. Размер вычислительнои окрестности равен 3.

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

Рис.3. Статистика количества ячеек разных типов блоков первой сетки

Рис.4. Распределение блоков первой сетки жадным алгоритмом на 128 процессов без использования дробления

(зеленым показана линия среднего значения)

Для этои сетки было проведено распределение на 128 параллельных процессов. Приведем статистику распределения блоков по вычислительным процессам для двух различных вариантов: без использования дробления блоков и с использованием дроблении для достижения показателя качества распределения 10% максимального отклонения.

60000

50000

40000

30000

20000

10000

5.75М grid: deviation 8.4%, cuts 245

СП ts

количествоячеек процесса

I количество МР1 ячеек процесса

Рис.5. Распределение блоков первой сетки жадным алгоритмом на 128 процессов с использования дробления до показателя 10% отклонения от среднего (показано зеленым цветом)

Аналогичные тестовые запуски производились для сетки, содержащеи 300 блоков, 1796 интерфеисов, 1643 граничных условия, 300 областеи начальных данных и 94336290 ячеики. Размер вычислительнои окрестности также равен 3.

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

Рис.6. Статистика количества ячеек разных типов блоков второй сетки

Для этои сетки также было осуществлено распределение на 128 параллельных процессов. Приведем статистику распределения блоков по вычислительным процессам для двух различных вариантов: без использования дробления блоков и с использованием дроблении для достижения показателя качества распределения 10% максимального отклонения.

Рис. 7. Распределение блоков второй сетки жадным алгоритмом на 128 процессов без использования дробления

(зеленым показана линия среднего значения)

Рис.8. Распределение блоков второй сетки жадным алгоритмом на 128 процессов с использования дробления до показателя 10% отклонения от среднего (показано зеленым цветом)

Таким образом, применение дробления расчетнои сетки привело к ускорению производимых расчетов для указанных сеток в 27.5 и 2.8 раз соответственно при запуске обработки сетки в 128 параллельных процессах.

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

02010107070107020100020309020201000206000207010002010004010200010100000102020801

Литература

1. Blazek J. Computational fluid dynamics: Principles and applications. - Elsevier, 2001.

2. Farrashkhalvat M., Miles J.P. Basic structured grid generation, with an introduction to unstructured grid generation. -Butterworth-Heinemann, 2003.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Шабанов Б.М., Телегин П.Н., Аладышев О.С. Особенности использования многоядерных процессоров. - Программные продукты и системы, №2 [82], сс. 7-9, 2008.

4. Queen M. Parallel programming in C with MPI and OpenMP. - Mc-Grow Hill, 2004.

5. Описание интерфейса пользователя, предназначенного для работы с интеловскои гибридной архитектурой суперЭВМ (СК), где вместе с процессорами Intel Xeon используются сопроцессоры Intel Xeon Phi. URL http://www.jscc.ru/informat/MVS-10PInter.pdf

References

1. Blazek J. Computational fluid dynamics: Principles and applications. - Elsevier, 2001.

2. Farrashkhalvat M., Miles J.P. Basic structured grid generation, with an introduction to unstructured grid generation. -Butterworth-Heinemann, 2003.

3. Shabanov B.M., Telegin P.N., Aladyshev O.S. Osobennosti ispol'zovaniya mnogoyadernykh protsessorov. - Programmnye produkty i sistemy, №2 (82), ss. 7-9, 2008.

4. Queen M. Parallel programming in C with MPI and OpenMP. - Mc-Grow Hill, 2004.

5. Opisanie interfeysa pol'zovatelya, prednaznachennogo dlya raboty s intelovskoy gibridnoy arkhitekturoy superEVM (SK), gde vmeste s protsessorami Intel Xeon ispol'zuyutsya soprotsessory Intel Xeon Phi. URL http://www.jscc.ru/informat/MVS-10PInter.pdf

Поступила 18.10.2016

Об авторах:

Рыбаков Алексей Анатольевич, ведущии научньш сотрудник Межведомственного суперкомпьютерного центра Россиискои академии наук - филиала Федерального государственного учреждения «Федеральныи научныи центр Научно-исследовательскии институт системных исследовании Россиискои академии наук», кандидат физико-математических наук, rybakov@jscc.ru.

i Надоели баннеры? Вы всегда можете отключить рекламу.