УДК 519.6
ДЕКОМПОЗИЦИЯ ДАННЫХ
ДЛЯ РАСПАРАЛЛЕЛИВАНИЯ МЕТОДИКИ ТИМ-2Б И КРИТЕРИИ ОЦЕНКИ ЕЕ КАЧЕСТВА
А. А. Воропинов
DATA DECOMPOSITION FOR TIM-2D CODE PARALLELIZING METHOD AND ITS QUALITY EVALUATION CRITERIA
A. A. Voropinov
Методика ТИМ-2Б предназначена для решения задач механики сплошной среды на нерегулярных многоугольных сетках произвольной структуры. Описывается алгоритм декомпозиции данных для мелкозернистого распараллеливания методики ТИМ-2Б, учитывающих разбиение на математические области. Вводится ряд критериев для оценки качества декомпозиции, используемые при мелкозернистом распараллеливании методики ТИМ-2Б. Представленные критерии и алгоритмы проверяются на ряде тестовых декомпозиций.
Ключевые слова: нерегулярные многоугольные сетки, мелкозернистое распараллеливание, декомпозиция данных
TIM-2D is a continuum mechanics code that uses irregular polygonal grids of arbitrary structure. Several data decomposition algorithms for fine-grain paralleling of TIM-2D are described. A number of decomposition quality assessment criteria for fine-grain paralleling of TIM-2D are introduced. These criteria and algorithms are verified by means of a number of test decompositions.
Keywords: irregular polygonal meshes, fine-grain prallelism, data decomposition
1. Введение
Методика ТИМ-2Б [1] предназначена для расчета нестационарных задач механики сплошной среды на нерегулярных лагранжевых сетках произвольной структуры. Ячейками сетки являются произвольные многоугольники, в узлах сходится произвольное количество ребер.
Для повышения точности проводимых расчетов и более адекватного моделирования сложных задач необходимо производить численное моделирование на сетках с большим количеством ячеек (счетных точек). Проведение расчетов с большим количеством счетных точек требует значительного календарного времени. Один из путей сокращения сроков -проведение расчетов в параллельном режиме счета.
Для методики ТИМ-2Б реализуется трехуровневое распараллеливание [2]. На первом (верхнем) уровне осуществляется распараллеливание счета по математическим областям в модели распределенной памяти с использованием интерфейса передачи сообщений MPI. На втором уровне распараллеливается счет внутри математической области по параобластям
(математическая область разбивается на фрагменты с наложением в один слой ячеек), также с использованием MPI. На третьем (нижнем) уровне осуществляется распараллеливание итераций счетных циклов в модели общей памяти с использованием интерфейса OpenMP. Эти подходы могут использовать как вместе в различных сочетаниях, так и раздельно при расчете одной задачи. Разнообразие методов и их сочетаний определяет сложность задачи выполнения декомпозиции таким образом, чтобы она подходила для использования в методике ТИМ-2Б.
Эффективное исполнение счетных программ методик на параллельных машинах с распределенной памятью требует декомпозиции данных по процессам таким образом, чтобы распределение вычислительной нагрузки по процессам было равномерным, а количество межпроцессорных обменов минимальным.
Для методик, использующих регулярные сетки, задача декомпозиции данных по процессам, как правило, решается с помощью разбиения сетки по столбцам или строкам (в трехмерном случае, также может использоваться и разбиение по листам), или с помощью матричного метода. Разбиение сетки по строкам или столбцам осуществляется путем «разрезания> сетки вдоль выделенного сеточного направления. В матричном методе «разрезание> осуществляется сразу по двум сеточным направлениям (в трехмерном случае может осуществляться и по трем сеточным направлениям). Эти методы хорошо себя зарекомендовали, так как достаточно просты для реализации, и в случае, когда расчет различных точек в задаче требует примерно одинакового количества вычислений, позволяют получить хорошую сбалансированность вычислительной нагрузки между процессами. Однако в случае, если в разных фрагментах задачи объем вычислений для расчета точек существенно различается, то добиться хорошей сбалансированности загрузки такими методами достаточно сложно.
Использование декомпозиции по строкам, столбцам или матричной декомпозиции для методик использующие нерегулярные сетки невозможно, поскольку в нерегулярной сетке структурно не имеется выделенных сеточных направлений. Поэтому для методик, основанных на нерегулярных сетках, используются геометрические методы декомпозиции данных и методы декомпозиции, основанные на разбиении графов, отображающих структуру счетной сетки. Необходимо отметить, что методы, которые применимы для декомпозиции данных для методик на нерегулярных сетках, могут применяться и для методик на регулярных сетках.
Геометрические методы выполняют разбиение сетки, основываясь на координатной информации об ее элементах. Эти методы не всегда позволяют равномерно распределить нагрузку между процессами.
Недостатками геометрических методов являются: ограничения на форму геометрии; сложности при организации многообластного счета, так как трудно добиться особой обработки точек вдоль границ; также возникают проблемы в случае, если ячейки сетки имеют существенно различный размер в разных частях области. Также к недостаткам этих методов относится то, что они не учитывают информацию о соседстве элементов сетки, поэтому геометрические методы не могут явно привести к минимизации передаваемых между процессами данных. Все это приводит к тому, что использование геометрических методов для декомпозиции данных на достаточно большое количество процессов затруднительно.
Задача разбиения графа на подграфы оптимальным образом относится к классу NP-полных. Поэтому для ее решения, как правило, используют приближенные алгоритмы двух классов: геометрические и эвристические методы. Эвристические методы обеспечивают более сбалансированное разбиение, и передаваемых между процессами данных обычно меньше, чем при применении геометрических методов.
Существует большое количество эвристических методов: уровневое ячеечное разбиение,
алгоритмы Kernighan-Lin и Р1ёисе1а-Ма11Ьеу8е8, алгоритм спектральной бисекции, многоуровневые методы разбиения графов и другие.
Основой многоуровневых методов разбиения графов является следующая последовательность действий:
• огрубление графа: построение последовательности уменьшающихся в размере вложенных графов путем многократного стягивания ребер;
• начальная декомпозиция: вершины огрубленных графов распределяются на заданное число подграфов;
• восстановление графа и локальное уточнение декомпозиции: вершины всех графов сформированной последовательности, начиная с имеющих наименьший размер, распределяются по подграфам.
Многоуровневые алгоритмы эффективны по двум причинам: во-первых, алгоритм позволяет скрыть большое количество ребер в огрубленном графе, что уменьшает количество передаваемых между процессами данных; во-вторых, эти алгоритмы работают эффективнее, так как перемещение одной вершины в огрубленном графе эквивалентно перемещению большого числа вершин исходного графа.
Недостатком эвристических алгоритмов является то, что они не учитывают геометрические особенности сетки. Это может приводить к тому, что геометрически граница между подсетками может иметь очень сложный вид, что может осложнять работу алгоритмов, работающих с сеткой (в методике ТИМ-2Б - дифференцируемые связи и локальные перестройки).
Одними из известных и общедоступных являются библиотеки семейства Ме^Я [3]. Реализованные в библиотеке алгоритмы дают качественную декомпозицию по количеству передаваемых между процессами данных, и возможность балансировки загрузки процессов. Декомпозиция может выполняться как в последовательном, так и в параллельном режиме счета. В настоящее время пакет Ме^Я используется в качестве базового при декомпозиции данных для мелкозернистого распараллеливания в методике ТИМ-2Б.
Необходимо отметить, что любой метод декомпозиции можно рассматривать как разбиение графа, отображающего структуру сетки, на подграфы. Поэтому рассмотрение декомпозиции как разбиение графа является наиболее универсальным и позволяет единым образом описывать любой из способов декомпозиции (как геометрические, так и эвристические).
Общим недостатком всех приведенных методов декомпозиции является то, что они учитывают ограниченное число критериев. В то же время методика может накладывать дополнительные ограничения на получаемые подграфы (точнее на соответствующие им па-раобласти). В результате разбиение на подграфы, полученное каким-либо методом, может оказаться неудачным для использования в конкретной методике.
Так, в методике ТИМ-2Б для поддержания качественной расчетной сетки используются два базовых метода. Первый - коррекция лагранжевой сетки путем наложения дифференцируемых связей [4], выполняемая без изменения структуры сетки. Второй - локальные перестройки сетки, при котором меняется как структура сетки, так и количество элементов сетки (ячеек, ребер и узлов). Использование этих алгоритмов приводит к наложению ряда дополнительных требований на декомпозицию. В случае, если эти требования не учитывать, то сетка может обрабатываться не корректно и, как следствие, качество сетки может значительно ухудшиться. Такими ограничениями являются, например, минимизация количества особых точек, в которых сходится более двух компактов, «оторванные ячейки> и ряд других.
2. Декомпозиция данных в методике ТИМ-2В
В методике ТИМ-2Б используется трехуровневое распараллеливание в модели смешанной памяти. Эти три уровня могут использоваться по отдельности, попарно в различных сочетаниях и все вместе, таким образом, возможно 7 различных режимов распараллеливания. Конкретный режим определяются параметрами вычислительной системы, используемыми приближениями и параметрами задачи.
Учитывая возможность использования различных режимов распараллеливания, вопрос о корректной декомпозиции данных встает особенно остро. Сначала рассмотрим вопрос о декомпозиции данных для каждого из уровней отдельно, а затем для смешанных режимов.
2.1. Декомпозиция для распараллеливания по математическим областям
При распараллеливании по областям максимальное количество узлов, которые можно задействовать равно количеству областей. Разбиение задачи на математические области выполняется на этапе расчета начальных данных, исходя из геометрии задачи и начальных данных. В результирующей сетке может очень существенно различаться объем вычислений, приходящихся на каждую область из-за различного количества точек, веществ, используемых приближений и счетных алгоритмов. Это приводит к невысокой эффективности распараллеливания при расчете на максимальном количестве узлов. Для того, чтобы обойти эту проблему, в рамках методики ТИМ-2Б реализована возможность отнесения нескольких математических областей к одному MPI процессу. То есть, одним процессом может обсчитываться не одна математическая область, а несколько. Благодаря этой возможности, как правило, удается сбалансировать вычислительную нагрузку, при этом уменьшается количество задействованных процессов, но ускорение остается на том же уровне, что и с использованием максимального количества.
Декомпозиция для распараллеливания по математическим областям производится в автоматическом режиме. Первоначальная декомпозиция выполняется на основе информации о количестве точек в областях. Недостатком такой декомпозиции является то, что она не учитывает реальную вычислительную нагрузку, связанную с областью, так как в разных областях используются различные вещества, используются различные приближения, по-разному работают алгоритмы контроля за качеством счётной сетки (коррекция и локальные перестройки). Это приводит к тому что хорошо сбалансированная задача с дисбалансом по количеству точек, например, в 5% может считаться с эффективностью 60 - 70%. Для того, чтобы преодолеть эти недостатки в процессе счета используются алгоритмы автоматической передекомпозиции, формирующие новую декомпозицию на основе реально затраченного времени на расчёт каждой математической области.
Сложностью при разработке таких алгоритмов стала «плавающая вычислительная нагрузкам Связано это с тем, что во время расчета вычислительная нагрузка меняется от шага к шагу главным образом в алгоритмах, работающих со счетной сеткой (коррекция и перестройки). При этом на соседних шагах время расчета области может различаться на 30 - 40% и более. С другой стороны, в процессе вычислений в математических областях, в результате работы алгоритмов локальных перестроек сетки постепенно изменяется количество счетных точек, что также изменяет время расчета области (на последующих шагах). Чтобы преодолеть эти трудности, декомпозиция выполняется на основе не общего времени счета с самого старта задачи и не на основе времени счета одного шага, а на основе времени счета последних 100 шагов. Такой подход позволяет, с одной стороны, сгладить влияние времени выполнения одного шага, с другой стороны, учитывает реальное количество точек в расчете на момент выполнения декомпозиции (за 100 шагов количество точек меняется не значительно).
При сохранении разреза вызывается процедура, формирующая наилучшую декомпозицию для текущего количества процессов. В случае, если сформированная декомпозиция оказывается лучше текущей и дает выигрыш в эффективности более чем на 10%, то производится передекомпозиция. При этом полностью освобождается вся память и зачитывается только что сохраненный разрез. Кроме этого, формируются декомпозиции на количество процессов от 2 до К, где N - количество областей в задаче. При этом выдаются декомпозиции, дающие ускорение выше, чем текущая. В случае необходимости пользователю рекомендуется изменить количество задействованных процессов для ускорения расчета.
2.2. Распределение вычислительной нагрузки между процессами при распараллеливании в модели общей памяти
При распараллеливании в модели общей памяти каждый счетный блок ТИМ-2Б распараллеливается независимо. Всего в настоящее время для расчета задач газовой динамики и упрогопластичности выделено 4 счетных блока: расчет узловых величин, расчет ячеечных величин, коррекция счетной сетки, локальные перестройки сетки. В каждом счетном блоке организована одна параллельная область ОрепМР.
При распараллеливании в модели общей памяти понятие декомпозиции не вполне корректно, так как все данные являются общими для нитей (вычислительных ядер одного узла). При этом между нитями разделяются не данные, а итерации счетных циклов, каждая из которых может выполняться независимо. Такая организация возможна благодаря использованию в методике ТИМ-2Б нерегулярных сеток и как следствие организация всех счетных алгоритмов без привязки к структуре счетной сетки. То есть каждая точка рассчитывается полностью независимо от расчета других точек.
Такая схема распараллеливания позволяет использовать распараллеливание в модели общей памяти совместно с распараллеливанием в модели распределенной памяти (как по математическим областям, так и мелкозернистое).
2.3. Декомпозиция для мелкозернистого распараллеливания
Программы, выполняющие декомпозицию, такие как Ме^Я, в качестве исходных данных используют граф, отражающий связи между элементами сетки. При выполнении декомпозиции каждая вершина графа относится к одному из компактов, а некоторые ребра графа «разрезаются>.
В методике ТИМ-2Б декомпозиция осуществляется по ячейкам, так как ячейки являются основными счетными элементами.
Подход с разрезанием графа, отображающего структуру сетки на подграфы, является одним из самых универсальных. При таком подходе структура сетки представляется в виде графа, и решается задача о разрезании этого графа на подграфы с условием равенства подграфов по суммарному весу (далее декомпозиция графа сетки). В качестве весов используется вычислительная нагрузка на расчет точки.
Так как в методике ТИМ-2Б декомпозиция осуществляется по ячейкам, то в качестве вершин графа используются ячейки, ребра графа соответствуют соседству между ячейками.
2.4. Декомпозиция в режиме счета с несколькими уровнями распараллеливания
При использовании нескольких уровней распараллеливания вопрос с декомпозицией встает особенно остро.
2.4.1. Прозрачность декомпозиции для OpenMP распараллеливания в модели смешанной памяти
Для распараллеливания в модели смешанной памяти распараллеливание с использованием ОрепМР никаким модификациям не подвергается. Это происходит благодаря тому, что ОрепМР распараллеливание осуществляется внутри математической области (распараллеливаются итерации счетных циклов по ячейкам или по узлам). В результате при распараллеливании по областям для ОрепМР «не чувствует> этого распараллеливания (области относящиеся к другим процессам текущим процессом не обсчитываются и соответственно ОрепМР для них не используется). При использовании мелкозернистого распараллеливания (совместно с распараллеливанием по областям) каждая параобласть в структурах данных оформляется как область, и поэтому ОрепМР распараллеливание работает с ней точно так же как, и с обычной математической областью.
2.4.2. Мелкозернистое распараллеливание совместно с распараллеливанием по областям
В режиме мелкозернистого распараллеливания на верхний уровень распараллеливания возлагается задача формирования параобластей из математической области и дальнейшее управление расчетом полученных параобластей. Это включает в себя сбор общей информации о ходе расчета, выработку счетного шага, сбор интегральной информации, задание параметров расчета области и так далее. Помимо этого, на верхнем уровне распараллеливания выполняется расчет контактных границ математической области.
Для мелкозернистого распараллеливания совместно с распараллеливанием по областям возникает вопрос об учете разделения геометрии задачи на математические области.
Первая проблема возникает из-за того, что математические области в ТИМ-2Б являются независимыми объектами уровня задачи (при решении задач газовой динамики и упруго-пластичности). То есть в каждой области используется собственная сплошная нумерация элементов сетки, начинающаяся с 1. В разных областях одной задачи количество точек может варьироваться от нескольких сотен до сотен тысяч. При этом ячейки каждой области разделяются на компакты не зависимо от других областей, но при выполнении декомпозиции необходимо получить сбалансированную нагрузку на процессы.
Решается эта проблема следующим образом. Каждая область делится на большое количество компактов - примерно на порядок больше, чем это необходимо (конкретная цифра тут не требуется, необходимо, чтобы получаемые компакты были достаточно мелкими). На этом этапе формируются компакты из примерно 1000 ячеек, области меньше 5000 ячеек на компакты не разбиваются. Полученные маленькие компакты по всем математическим областям собираются вместе и представляются в свою очередь в виде графа уже по всей задаче. То есть формируется макро граф, вершинами которого являются небольшие компакты и маленькие области, полученные при декомпозиции областей. Производится повторная декомпозиция уже на заданное количество процессов, в результате которой получается итоговая декомпозиция. Таким образом, декомпозиция производится за два захода и называется двухпроходной.
3. Критерии оценки качества декомпозиции
Задача рационального разбиения графа на определенное количество частей, содержащих равное количество вершин при условии минимизации числа разрезанных ребер и равномерного распределения их по всем подграфам, относится к классу КР-полных. Поэтому эта задача решается, как правило, приближенно при помощи различных геометрических или
эвристических алгоритмов. Общим недостатком алгоритмов декомпозиции является то, что они учитывают ограниченное число критериев, накладываемых на подграфы, в результате, разбиение может оказаться неудачным для использования в методике ТИМ-2Б.
В данной работе предложен первый вариант списка критериев для методики ТИМ-2Б. В дальнейшем он, по-видимому, будет пополняться. Например, ряд дополнительных ограничений могут быть введены из-за требований, накладываемых локальными перестройками сетки путем дробления и объединения ячеек. В настоящее время не даются количественные характеристики для получения приемлемой декомпозиции для вводимых критериев. Их доработка проводится при реализации мелкозернистого распараллеливания для счетных блоков при тестировании и выявлении не удачных декомпозиций.
3.1. Критерии для достижения более высокой эффективности распараллеливания
Для декомпозиции данных в режиме мелкозернистого распараллеливания в методике ТИМ-2Б в качестве базовой используется библиотека Ме^Я. Некоторые из декомпозиций, полученных пакетом Ме^Я, использовались в качестве тестовых.
Алгоритмы в библиотеке Ме^Я при построении декомпозиции учитывают два обстоятельства: равенство подграфов по суммарному весу и минимальность весов разрезанных ребер (ребро называется разрезанным, если вершины, которые оно соединяет, отнесены к разным подграфам). Сочетание этих двух критериев не гарантирует получение оптимальной и даже приемлемой декомпозиции. Кроме того, декомпозиция данных из-за разбиения геометрии задачи на несколько областей должна выполняться в два этапа (смотри пункт 2.4), при этом могут нарушаться и эти два условия.
Список критериев, используемый для методики ТИМ-2Б с точки зрения получения высокой эффективности распараллеливания, следующий.
• Равенство подграфов по количеству вершин подграфа или, если граф взвешенный, то по суммарному весу вершин. Этот критерий отвечает за сбалансированность вычислительной нагрузки между процессами. Этот критерий контролируется в Ме^Я.
• Процентное отношение разрезанных ребер в графе. Объем передаваемых между процессами данных определяется количеством разрезанных ребер. Уменьшение относительного количества разрезанных ребер позволяет сократить объем передаваемых данных и уменьшить простои процессов. Этот критерий также контролируется в Ме^
• Количество разрезанных ребер между парой подграфов - количество ребер соединяющих вершины каждого подграфа с вершинами других подграфов. Количество разрезанных ребер между парой подграфов отражает время, необходимое для пересылки информации от одного процесса другому. В этом критерии оценивается объем данных для пересылки между каждой парой процессов, рассчитывающих соседние параобла-сти. Желательно, чтобы эти объемы были приблизительно равны между собой. Однако основное назначение этого критерия - выявление «коротких> границ, которые являются не желательными для алгоритмов поддержания качества сетки.
• Количество соседних подграфов у каждого подграфа. При передаче информации между процессами существенную часть времени занимает установка соединения, которое может превышать само время передачи. Число соседних подграфов определяет количество необходимых соединений. Желательно, чтобы количество соседей у каждого
подграфа было примерно одинаковым. Критерий позволяет оценить, насколько одинаковым будет время, которое каждый процесс потратит на установку соединений.
• Критерий связности подграфов позволяет в некоторых случаях упростить вычислительные алгоритмы. Необходимо отметить, что в случае, если подграф распадается на достаточно крупные куски, то такая декомпозиция может считаться приемлемой. Плохой декомпозицией может считаться декомпозиция, в которой возникают, например, оторванные ячейки. Таким образом, для несвязного подграфа разбиение можно считать «удачным>, если каждая его компонента имеет примерно одинаковый вес, одинаковое количество соседних подграфов и разрезанных ребер. Здесь и далее два подграфа называются соседними, если существует хотя бы одно ребро, соединяющее вершину одного подграфа с вершиной другого подграфа.
• У вершины количество разрезанных ребер больше, чем неразрезанных. Этот критерий позволяет выявить локальные ошибки алгоритмов декомпозиции, когда одна ячейка отнесена не к тому компакту. Исправление таких локальных ошибок в ряде случаев позволяет улучшить геометрическую форму границы между параобластями.
• Соотношение между суммарным весом вершин и разрезанных ребер подграфа. При распараллеливании вычислений необходимо стремиться к тому, чтобы время, затрачиваемое на обмен информацией, было меньше времени, затрачиваемого на счёт. Время на обмен информацией между процессами складывается из времени, необходимого на установку соединения между процессами, и времени, необходимого непосредственно на передачу информации. Поэтому суммарный вес разрезанных ребер подграфа, который характеризует необходимое время на передачу информации, должен быть намного меньше общего веса вершин подграфа, отражающего время счета соответствующим процессом. Этот критерий контролируется в библиотеке МеТ1Я, однако особая обработка ячеек вдоль границ может приводить к получению неудачной декомпозиции.
3.2. Критерии, накладываемые счетными алгоритмами
В методике ТИМ-2Б метод дифференцируемых связей используется в качестве основного алгоритма поддержания счетной лагранжевой сетки на протяжении расчета без изменения структуры сетки. В настоящее время в методе дифференцируемых связей реализовано несколько способов поддержания приемлемых многоугольных счетных ячеек для возможности моделирования течений на неструктурированных сетках:
• сетки, содержащие «звездные> ячейки (ячейка называется звездной, если все ее узлы находятся в прямой видимости из ее центра);
• сетки с выпуклыми углами, образованными двумя ребрами ячейки с общим узлом (ячейки - выпуклые многоугольники);
• сетки с произвольными не самопересекающимися многоугольными ячейками (центр ячейки может находиться «вне> ячейки);
• сетки, обладающие какими-либо другими свойствами, наряду с вышеперечисленными: контроль длин ребер и величины углов ячейки, контроль «характерного размера> ячейки, несамопересечение контактных и «свободных> границ и ряд других.
Условия поддержания приемлемой формы счетных ячеек могут применяться в любой комбинации одновременно, в различных сочетаниях в разных частях задачи.
При реализации мелкозернистого распараллеливания для метода дифференцируемых связей возник ряд трудностей с обработкой особых точек (точек, которые окружают ячейки трех или более компактов). Поэтому желательно, чтобы таких особых точек было как можно меньше, кроме того, необходимо, чтобы они находились на достаточном удалении друг от друга. Эти условия нашли отражение в следующих критериях:
• Количество разрезанных ребер между парой подграфов. Этот критерий был введен в предыдущем пункте для отражения равенства объема передаваемых данных между парами процессов. Кроме этого, данный критерий позволяет выявлять «короткие> границы между компактами, что является дополнительной сложностью для алгоритмов коррекции счетной сетки.
• Непрерывность линии разделяющей пару подсеток, соответствующих соседним подграфам. Линию образует множество ребер и узлов сетки, которые относятся к ячейкам сетки, принадлежащим двум соседним подсеткам. На каждом разрыве линии возникает две дополнительных особых точки, которые повышают нагрузку на алгоритмы дифференцируемых связей.
3.3. Тестирование алгоритмов оценки качества декомпозиции
Ряд декомпозиций, на которых проводилось тестирование алгоритмов оценки качества, приведен на рисунке.
По результатам тестирования можно сделать вывод о том, что представленные критерии корректно обрабатывают декомпозиции различных типов, как хорошего, так и неудовлетворительного качества. В дальнейшем необходимо их тестирование в сочетании со счетными алгоритмами для выработки конкретных количественных характеристик для различных критериев.
Декомпозиции, полученные с помощью библиотеки Ме^Я, можно охарактеризовать как хорошо сбалансированные по вычислительной нагрузке, общее количество разрезанных ребер мало по сравнению с общим количеством ребер в графе. Линия между парами подсеток, как правило, непрерывна. Подграфы получаются связными.
К недостаткам декомпозиции можно отнести то, что достаточно часто в декомпозициях возникают «короткие> границы между параобластями. Отклонение от среднего значения количества соседних подграфов достигает 50%. Необходимо отметить, что качество декомпозиции Ме^Я резко снижается при определенных условиях, например, при небольшом количестве вершин в графе. В редких случаях декомпозиции могут оказаться с неодносвяз-ными компактами.
4. Заключение
В данной статье описываются алгоритмы декомпозиции, используемые для методики ТИМ-2Б в различных режимах параллельного счета в смешанной модели памяти. Описаны алгоритмы, использующие двухпроходную декомпозицию.
Проведена оценка различных счетных алгоритмов, используемых в ТИМ-2Б в части ограничений, накладываемых на декомпозицию данных. На основе этих требований сформулирован ряд критериев для оценки качества декомпозиции, который в дальнейшем может пополняться. Разработаны алгоритмы, реализующие эти критерии, которые протестированы на ряде тестовых декомпозиций. Проведено тестирование программы проверки критериев на графах, полученных по четырехугольным и многоугольным (преимущественно шестиугольным) сеткам, которые в настоящее время используются в качестве базовых в ТИМ-2Б.
При этом использовались декомпозиции, заданные вручную и полученные при помощи пакета МеТ1Я.
В дальнейшем возможна разработка метода, учитывающего рассмотренные критерии непосредственно на этапе выполнения декомпозиции.
Примеры тестовых декомпозиции для оценки критериев качества
Статья 'рекомендована к печати программным комитетом международной научной конференции «Параллельные вычислительные технологии 2009> http://agora.guru.ru/pavt.
Литература
1. Методика ТИМ-2Б для расчета задач механики сплошной среды на нерегулярных многоугольных сетках с произвольным количеством связей в узлах / С. С. Соколов, А. А. Воропинов, И. Г. Новиков, и др. // Вопросы атомной науки и техники. Сер. Математическое моделирование физических процессов. -2006. - Вып. 4. - С. 29 - 43.
2. Воропинов, А. А. Распараллеливание в модели смешанной памяти для расчета задач газодинамики в методике «:ТИМ-2Б>/ А. А. Воропинов, С. С. Соколов, И. Г. Новиков // Параллельные вычислительные технологии (ПаВТ'2008): тр. междунар. научной конф. (Санкт-Петербург, 28 января - 1 февраля 2008 г.). Челябинск, 2008. - С. 69 - 79.
3. Schloegel, K. Graph Partitioning for High Performance Scientific Simulations / K. Schloegel, G. Karypis, V. Kumar. - Army HPC Research Center Dept. of Computer Science and Engineering, University of Minesota; Minneapolis, Minnesota, 1999.
4. Новиков, И. Г. Способ коррекции нерегулярной лагранжевой сетки методом наложения дифференцируемых связей / И. Г. Новиков, А. И. Панов, С. С. Соколов // Журн. вычисл. математики и мат. физики РАН. - 2005. - Т. 45, №8. С. 1487 - 1500.
ФГУП Российский федеральный ядерный центр - Всероссийский научно-исследовательский
институт экспериментальной физики, г. Саров
Поступила в 'редакцию 13 марта 2009 г.