Шелест Лариса Николаевна

Факультет: Вычислительной техники и информатики
Специальность: Программное обеспечение автоматизированных систем
Тема выпускной работы: "Исследование методов разбиения графов большой размерности со многими ограничениями при параллельной работе" (система ParMetis, hMetis, METIS).
Научный руководитель: ст. пр. Костин В.И.
E-mail: lorashelest@mail.ru

биография :: реферат :: библиотека :: ссылки :: отчет о поиске :: задание :: портал магистров ДонНТУ


Перевод части статьи George Karypis, Kirk Schloegel and Vipin Kumar. PARMETIS Parallel Graph Partitioning and Sparse Matrix Ordering Library, Version 3.0. - University of Minnesota, Department of Computer Science and Engineering, Army HPC Research Center, Minneapolis, MN 55455: March 28, 2002. Выполнила Шелест Лариса.

Пакет ParMETIS.

PARMETIS - это параллельная библиотека, основанная на MPI - Message Passing Interface - протокол обмена сообщениями между процессами, выполняемыми параллельно, которая реализует набор алгоритмов для разбиения и переразбиения неструктурированных графов и вычисления упорядочений разреженных матриц. PARMETIS частично пригоден для параллельных численных моделей, содержащих большие неструктурированные сетки.

Алгоритмы в PARMETIS основаны на многоуровневом разбиении, которые были реализованы в пакете METIS. Однако, PARMETIS расширяет функциональность предоставляемую пакетом METIS и включает подпрограммы, которые преимущественно предназначены для параллельных вычислений широко-масштабных численных моделей [13].

Параллельный алгоритм разбиения графов.

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

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

Пусть p - количество процессоров для вычисления р-фазного разбиения графа G = (V; E). G первоначально распределяется между процессорами, используя однонаправленное распределение так, что каждый процессор получает n=p вершин и списки их смежности. В конце алгоритма номер сегмента присваивается каждой вершине графа.

Раскраска графа.

Раскраска графа G = (V; E) присваивает цвета вершинам графа G так, что смежные вершины имеют различные цвета. В ParMETIS ищется такая раскраска, чтобы количество отдельных используемых цветов было малым. Параллельный алгоритм раскраски, разработанный авторами ParMETIS, включает несколько итераций. В каждой итерации максимально независимое множество вершин I выбирается с использованием измененного алгоритма Луби (см. [15]). Всем вершинам в независимом множестве присваивается одинаковый цвет. Перед началом следующей операции вершины из множества I удаляются из графа, а образовавшийся меньший граф становится входным графом для следующей итерации. Максимально независимое множество I множества вершин S вычисляется в инкрементном порядке, используя алгоритм Луби следующим образом.

Каждой вершине присваивается случайное число, а если вершина получает случайный номер, который меньше, чем все номера смежных вершин, то эта вершина включается во множество I. После этого процесс повторяется для вершин из множества S, которые и не входят во множество I, и не являются смежными с вершинами из I, а I расширяется подобным образом. Это инкрементное наращивание множества I заканчивается тогда, когда больше нет вершин, которые могут быть вставлены в I. В [15] показано, что одна итерация алгоритма Луби требует всего O(log|S|) таких расширяющих шагов для поиска максимально независимого множества вершин из множества S.

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

  e-mail: