Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Лекция 13. Параллельные методы обработки.

Презентация:



Advertisements
Похожие презентации
Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Образовательный комплекс Введение в методы.
Advertisements

Интернет Университет Суперкомпьютерных технологий Анализ сложности вычислений и оценка возможности распараллеливания Учебный курс Основы параллельных вычислений.
1 Исследование алгоритмов решения задачи k коммивояжеров Научный руководитель, проф., д.т.н. Исполнитель, аспирант Ю.Л. Костюк М.С. Пожидаев Томский государственный.
Теория графов Основные определения. Задание графов Графический способ – Привести пример графического задания графа, состоящего из вершин А, В и С, связанных.
Принципы разработки параллельных алгоритмов. Введение Для определения эффективных способов организации параллельных вычислений необходимо: Выполнить анализ.
Интернет Университет Суперкомпьютерных технологий Лекция 4 Методы построения параллельных программ (продолжение) Учебный курс Введение в параллельные алгоритмы.
АЛГОРИТМЫ НАХОЖДЕНИЯ КРАТЧАЙШИХ ПУТЕЙ НА ГРАФАХ..
Образовательный комплекс Параллельные вычисления Гергель В.П., проф., д.т.н., кафедра МО ЭВМ ф-та ВМК ННГУ Нижегородский государственный университет им.
Интернет Университет Суперкомпьютерных технологий Лекция 3 Методы построения параллельных программ (продолжение) Учебный курс Введение в параллельные алгоритмы.
Программная система для изучения и исследования параллельных методов решения сложных вычислительных задач Нижегородский государственный университет им.
Введение в теорию графов. ЗАДАЧА ПРОКЛАДКИ КОММУНИКАЦИЙ
Нижегородский государственный университет им. Н.И. Лобачевского Факультет вычислительной математики и кибернетики Учебно-исследовательская лаборатория.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
Интернет Университет Суперкомпьютерных технологий Лекция 3 Сортировка данных с точки зрения МВС (начало) Учебный курс Введение в параллельные алгоритмы.
Интернет Университет Суперкомпьютерных технологий Лекция 3 Методы построения параллельных программ (продолжение) Учебный курс Введение в параллельные алгоритмы.
1 Приближенные алгоритмы Комбинаторные алгоритмы.
Задача о максимальном потоке в сети Алгоритм Фалкерсона-Форда.
Интернет Университет Суперкомпьютерных технологий Якобовский Михаил Владимирович проф., д.ф.-м.н. Институт прикладной математики им. М.В.Келдыша РАН, Москва.
Функция Определение, способы задания, свойства, сведённые в общую схему исследования.
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
Транксрипт:

Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Лекция 13. Параллельные методы обработки графов Образовательный комплекс Введение в методы параллельного программирования Гергель В.П., профессор, д.т.н. Кафедра математического обеспечения ЭВМ

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 2 из 49 Обработка графов Задача поиска всех кратчайших путей Задача нахождения минимального охватывающего дерева Проблема оптимального разделения графов Заключение Содержание

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 3 из 49 Обработка графов… Математические модели в виде графов широко используются при моделировании разнообразных явлений, процессов и систем Граф G есть пара: V – набор вершин графа: R – набор ребер графа: В общем случае дугам графа могут приписываться некоторые числовые характеристики (веса):

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 4 из 49 Обработка графов… Пример взвешенного ориентированного графа

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 5 из 49 Обработка графов… При малом количестве дуг в графе целесообразно использовать для определения графов списки, перечисляющие имеющиеся в графах дуги Представление достаточно плотных графов, для которых почти все вершины соединены между собой дугами, может быть эффективно обеспечено при помощи матрицы смежности

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 6 из 49 Обработка графов Пример матрицы смежности

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 7 из 49 Постановка задачи: –Дан граф G, каждому ребру которого приписан неотрицательный вес, –Граф полагаем ориентированным, –Для имеющегося графа G требуется найти минимальные длины путей между каждой парой вершин графа, –В качестве метода, решающего задачу поиска кратчайших путей между всеми парами пунктов назначения, далее используется алгоритм Флойда (Floyd) Задача поиска всех кратчайших путей…

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 8 из 49 Последовательный алгоритм Флойда: –Сложность алгоритма имеет порядок Задача поиска всех кратчайших путей… // Алгоритм 11.1 // Последовательный алгоритм Флойда for (k = 0; k < n; k++) for (i = 0; i < n; i++) for (j = 0; j < n; j++) A[i,j] = min(A[i,j],A[i,k]+A[k,j]);

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 9 из 49 Задача поиска всех кратчайших путей… Разделение вычислений на независимые части: –Эффективный способ организации параллельных вычислений состоит в одновременном выполнении нескольких операций обновления значений матрицы A, –На итерации k не происходит изменения элементов A ik и A kj ни для одной пары индексов (i,j), –Докажем это: A ij min (A ij, A ik + A kj ) Для i=k получим: A kj min (A kj, A kk + A kj ), но тогда значение A kj не изменится, т.к. A kk =0 Аналогично для j=k

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 10 из 49 Задача поиска всех кратчайших путей… Выделение информационных зависимостей:… –Выполнение вычислений в подзадачах становится возможным только тогда, когда каждая подзадача (i,j) содержит необходимые для расчетов элементы A ij, A ik, A kj матрицы A, –Каждый элемент A kj строки k матрицы A должен быть передан всем подзадачам (k,j), 1 j n, а каждый элемент A ik столбца k матрицы A должен быть передан всем подзадачам (i,k), 1 i n

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 11 из 49 Задача поиска всех кратчайших путей… Выделение информационных зависимостей: –Информационная зависимость базовых подзадач (стрелками показаны направления обмена значениями на итерации k)

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 12 из 49 Задача поиска всех кратчайших путей… Масштабирование и распределение подзадач по процессорам: –Возможный способ укрупнения вычислений состоит в использовании ленточной схемы разбиения матрицы A: обновление элементов одной или нескольких строк (горизонтальное разбиение), обновление элементов одной или нескольких строк (вертикальное разбиение) –Далее будем рассматривать только разбиение матрицы A на горизонтальные полосы

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 13 из 49 Задача поиска всех кратчайших путей… Анализ эффективности: –Общая оценка показателей ускорения и эффективности Разработанный способ параллельных вычислений позволяет достичь идеальных показателей ускорения и эффективности

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 14 из 49 Задача поиска всех кратчайших путей… Анализ эффективности ( уточненные оценки ): - Время выполнения параллельного алгоритма, связанное непосредственно с вычислениями, составляет: - Оценка трудоемкости выполняемых операций передачи данных может быть определена как: (предполагается, что все операции передачи данных между процессорами в ходе одной итерации алгоритма могут быть выполнены параллельно) Общее время выполнения параллельного алгоритма составляет

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 15 из 49 Задача поиска всех кратчайших путей… Результаты вычислительных экспериментов:… –Сравнение теоретических оценок T p и экспериментальных данных T p * Количество вершин Последовательный алгоритм Параллельный алгоритм 2 процессора4 процессора8 процессоров ,600 39,686 21,800 20,996 11,900 10,530 6,910 6, , , , ,219 80,500 83,468 41,400 48, , , , , , , , , , , , , , , , ,713

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 16 из 49 Задача поиска всех кратчайших путей Результаты вычислительных экспериментов: –Ускорение вычислений Количество вершин Последовательный алгоритм Параллельный алгоритм 2 процессора4 процессора8 процессора ВремяУскорениеВремяУскорениеВремяУскорение ,68620,9961,89010,5303,7696,5906, ,228166,2191,84283,4683,66948,7966, ,611557,8871,842279,8303,672160,0136, , ,2051,852661,6413,696336,7137,263

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 17 из 49 Задача нахождения минимального охватывающего дерева… Постановка задачи: –Охватывающим деревом (или остовом) неориентированного графа G называется подграф T графа G, который является деревом и содержит все вершины из G, –Определив вес подграфа для взвешенного графа как сумму весов входящих в подграф дуг, под минимально охватывающим деревом (МОД) T будем понимать охватывающее дерево минимального веса, –Таким образом, для данного графа G требуется найти минимальное охватывающее дерево T

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 18 из 49 Задача нахождения минимального охватывающего дерева… Пример нахождения МОД

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 19 из 49 Задача нахождения минимального охватывающего дерева… Последовательный алгоритм Прима:… –Пусть V T есть множество вершин, уже включенных алгоритмом в МОД, а величины d i, 1in характеризуют дуги минимальной длины от вершин, еще не включенных в дерево, до множества V T, т.е. (если для какой-либо вершины i не существует ни одной дуги в V T, значение d i устанавливается в ) – В начале работы алгоритма выбирается корневая вершина МОД s и полагается V T ={s}, d s =0.

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 20 из 49 Задача нахождения минимального охватывающего дерева… Последовательный алгоритм Прима: –Действия, выполняемые на каждой итерации алгоритма Прима, состоят в следующем: определяются значения величин d i для всех вершин, еще не включенных в состав МОД, выбирается вершина t графа G, имеющая дугу минимального веса до множества V T вершина t включается в V T –Трудоемкость алгоритма Прима характеризуется квадратичной зависимостью от числа вершин графа

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 21 из 49 Задача нахождения минимального охватывающего дерева… Разделение вычислений на независимые части:… –Действия, выполняемые на каждой итерации алгоритма, являются независимыми и могут реализовываться одновременно, –Каждый процессор j при равномерной загрузке должен содержать: Набор вершин Соответствующий этому набору блок из k величин Вертикальную полосу матрицы смежности графа G из k соседних столбцов ( s есть s-ый столбец матрицы A) общую часть набора V j и формируемого в процессе вычислений множества вершин V T

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 22 из 49 Задача нахождения минимального охватывающего дерева… Выделение информационных зависимостей: –Общая схема параллельного выполнения алгоритма Прима будет состоять в следующем: Определяется вершина t графа G, имеющая дугу минимального веса до множества V T ; для выбора такой вершины необходимо осуществить поиск минимума в наборах величин d i, имеющихся на каждом из процессоров, и выполнить сборку полученных значений на одном из процессоров, Номер выбранной вершины для включения в охватывающее дерево передается всем процессорам, Обновляются наборы величин d i с учетом добавления новой вершины –Таким образом, в ходе параллельных вычислений между процессорами выполняются два типа информационных взаимодействий - сбор данных от всех процессоров на одном из процессоров и передача сообщений от одного процессора всем процессорам вычислительной системы

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 23 из 49 Задача нахождения минимального охватывающего дерева… Масштабирование и распределение подзадач по процессорам: –Распределение подзадач между процессорами должно учитывать характер выполняемых в алгоритме Прима коммуникационных операций. Для эффективной реализации требуемых информационных взаимодействий между базовыми подзадачами топология сети передачи данных должна иметь структуру гиперкуба или полного графа

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 24 из 49 Задача нахождения минимального охватывающего дерева… Анализ эффективности: –Общая оценка показателей ускорения и эффективности

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 25 из 49 Задача нахождения минимального охватывающего дерева… Анализ эффективности (уточненные оценки): - Время выполнения параллельного алгоритма, связанное непосредственно с вычислениями, составляет - Оценка трудоемкости выполняемых операций передачи данных может быть определена как Общее время выполнения параллельного алгоритма составляет

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 26 из 49 Задача нахождения минимального охватывающего дерева… Результаты вычислительных экспериментов:… –Сравнение теоретических оценок T p и экспериментальных данных T p * Количество вершин Последовательный алгоритм Параллельный алгоритм 2 процессора4 процессора6 процессоров ,234 4,137 3,778 3,971 4,383 3,462 5,005 3, ,5124,4983,971 4,148 4,560 3,621 5,190 3, ,798 4,800 4,168 4,442 4,739 3,763 5,376 4, ,094 5,206 4,369 4,680 4,920 3,992 5,564 4, ,398 5,689 4,574 4,950 5,103 4,623 5,754 4,424

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 27 из 49 Задача нахождения минимального охватывающего дерева Количество вершин Последовательный алгоритм Параллельный алгоритм 2 процессора4 процессора6 процессора Время УскорениеВремяУскорениеВремяУскорение 77504,1373,9711,0423,4621,1953,8371, ,498 4,1481,0843,6211,2423,9761, ,8004,4421,0813,7631,2764,1201, ,2064,6801,1123,9921,3044,2411, ,6894,9501,1494,6231,2314,4241,286 Результаты вычислительных экспериментов: –Ускорение вычислений

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 28 из 49 Задача оптимального разделения графов… Введение: –Проблема оптимального разделения графов относится к числу часто возникающих задач при проведении различных научных исследований, использующих параллельные вычисления. В качестве примера можно привести задачи обработки данных, в которых области расчетов представляются в виде двухмерной или трехмерной сетки, –Задачи разделения вычислительной сетки между процессорами могут быть сведены к проблеме оптимального разделения графа, –Для представления сетки в виде графа каждому элементу сетки можно поставить в соответствие вершину графа, а дуги графа использовать для отражения свойства близости элементов сетки (например, определять дуги между вершинами графа тогда и только тогда, когда соответствующие элементы исходной сетки являются соседними)

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 29 из 49 Задача оптимального разделения графов… Пример разделения нерегулярной сетки и соответствующий сетке граф:

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 30 из 49 Задача оптимального разделения графов… Постановка задачи: –Пусть дан взвешенный неориентированный граф G=(V,E), каждой вершине v и каждому ребру e которого приписан вес, –Задача оптимального разделения графа состоит в разбиении его вершин на непересекающиеся подмножества с максимально близкими суммарными весами вершин и минимальным суммарным весом ребер, проходящих между полученными подмножествами вершин, –Далее будем полагать веса вершин и ребер графа равными единице

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 31 из 49 Задача оптимального разделения графов… Метод рекурсивного деления пополам: –Для решения задачи разбиения графа можно рекурсивно применить метод бинарного деления, при котором на первой итерации граф разделяется на две равные части, далее на втором шаге каждая из полученных частей также разбивается на две части и т.д. –В данном подходе для разбиения графа на k частей необходимо log 2 (k) уровней рекурсии и выполнение k-1 деления пополам. В случае, когда требуемое количество разбиений k не является степенью двойки, каждое деление пополам необходимо осуществлять в соответствующем соотношении

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 32 из 49 Задача оптимального разделения графов… Пример разбиения графа на 5 частей методом рекурсивного деления пополам

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 33 из 49 Задача оптимального разделения графов… Геометрические методы: –Геометрические методы выполняют разбиение сетей, основываясь исключительно на координатной информации об узлах сети, –Так как геометрические методы не принимают во внимание информацию о связности элементов сети, то они не могут явно привести к минимизации суммарного веса граничных ребер. Для минимизации межпроцессорных коммуникаций геометрические методы оптимизируют некоторые вспомогательные показатели (например, длину границы между разделенными участками сети), –Геометрические методы работают исключительно быстро, –Рассматриваемые геометрические методы: Покоординатное разбиение, Рекурсивный инерционный метод деления пополам, Деление сети с использованием кривых Пеано

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 34 из 49 Задача оптимального разделения графов… Покоординатное разбиение: –Общая схема выполнения метода: Вычисляются центры масс элементов сети, Полученные точки проектируются на ось, соответствующую наибольшей стороне разделяемой сети

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 35 из 49 Задача оптимального разделения графов: Рекурсивный инерционный метод деления пополам: –Рекурсивном инерционном методе деления пополам строит главную инерционную ось, считая элементы сети точечными массами, –Линия бисекции, ортогональная полученной оси, как правило, дает границу наименьшей длины

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 36 из 49 Задача оптимального разделения графов… Деление сети с использованием кривых Пеано: –Кривые Пеано – это кривые, полностью заполняющие фигуры больших размерностей (например, квадрат или куб), –После получения списка элементов сети, упорядоченного в соответствии с расположением на кривой, достаточно разделить список на необходимое число частей в соответствии с установленным порядком

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 37 из 49 Задача оптимального разделения графов… Комбинаторные методы: –В отличие от геометрических методов, комбинаторные алгоритмы обычно оперируют не с сетью, а с графом, построенным для этой сети, –Комбинаторные методы не принимают во внимание информацию о близости расположения элементов сети друг относительно друга, руководствуясь только смежностью вершин графа, –Комбинаторные методы обеспечивают более сбалансированное разбиение и меньшее информационное взаимодействие полученных подсетей по сравнению с геометрическими методами, –Время работы комбинаторных методов, как правило, существенно превосходит времена работы геометрических, –Рассматриваемые геометрические методы: Деление с учетом связности, Алгоритм Кернигана-Лина

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 38 из 49 Задача оптимального разделения графов… Деление с учетом связности: –На каждой итерации алгоритма происходит разделение графа на 2 части. Разделение графа на требуемое число частей достигается путем рекурсивного применения алгоритма –Общая схема алгоритма: 1. Iteration = 0 2. Присвоение номера Iteration произвольной вершине графа 3. Присвоение ненумерованным соседям вершин с номером Iteration номера Iteration Iteration = Iteration Если еще есть неперенумерованные соседи, то переход на шаг 3 6. Разделение графа на 2 части в порядке нумерации

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 39 из 49 Задача оптимального разделения графов… Пример работы алгоритма деления с учетом связности

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 40 из 49 Задача оптимального разделения графов… Алгоритм Кернигана-Лина (общая схема):… Предполагается, что некоторое начальное разбиение графа уже существует. Далее имеющееся приближение улучшается в течение некоторого количества итераций: 1. Формирование множества пар вершин для перестановки Из вершин, которые еще не были переставлены на данной итерации, формируются все возможные пары (в парах должны присутствовать по одной вершине из каждой части имеющегося разбиения графа). 2. Построение новых вариантов разбиения графа Каждая пара, подготовленная на шаге 1, поочередно используется для обмена вершин между частями имеющегося разбиения графа для получения множества новых вариантов деления.

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 41 из 49 Задача оптимального разделения графов… Алгоритм Кернигана-Лина (общая схема): 3. Выбор лучшего варианта разбиения графа Для сформированного на шаге 2 множества новых делений графа выбирается лучший вариант. Данный способ фиксируется как новое текущее разбиение графа, а соответствующая выбранному варианту пара вершин отмечается как использованная на текущей итерации алгоритма 4. Проверка использования всех вершин При наличии в графе вершин, еще неиспользованных при перестановках, выполнение итерации алгоритма снова продолжается с шага 1. Если же перебор вершин графа завершен, далее следует шаг Выбор наилучшего варианта разбиения графа Среди всех разбиений графа, полученных на шаге 3 проведенных итераций, выбирается (и фиксируется) наилучший вариант разбиения графа.

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 42 из 49 Задача оптимального разделения графов… Пример работы алгоритма Кернигана-Лина: –В приведенном примере переставляются 2 вершины (выделены серым)

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 43 из 49 Задача оптимального разделения графов Сравнительная таблица некоторых алгоритмов разделения графов Необходимость координатной информации Точность Время выполнения Возможности для распараллеливания Покоординатное разбиениеда Рекурсивный инерционный метод деления пополам да Деление с учетом связностинет Алгоритм Кернигана- Лина 1 итерациянет 10 итерацийнет 50 итерацийнет

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 44 из 49 Заключение В разделе был рассмотрены ряд алгоритмов для решения типовых задач обработки графов: –Алгоритм Флойда, –Алгоритм Прима Был приведен обзор методов разделения графа: –Геометрические методы: Покоординатное разбиение, Рекурсивный инерционный метод деления пополам, Деление сети с использованием кривых Пеано –Комбинаторные методы: Деление с учетом связности, Алгоритм Кернигана-Лина

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 45 из 49 Вопросы для обсуждения Приведите определение графа. Какие основные способы используются для задания графов? В чем состоит задача поиска всех кратчайших путей? Приведите общую схему алгоритма Флойда. Какова трудоемкость алгоритма? В чем состоит способ распараллеливания алгоритма Флойда? В чем заключается задача нахождения минимального охватывающего дерева? Приведите пример использования задачи на практике. Приведите общую схему алгоритма Прима. Какова трудоемкость алгоритма? В чем состоит способ распараллеливания алгоритма Прима? В чем отличие геометрических и комбинаторных методов разделения графа? Какие методы являются более предпочтительными? Почему? Приведите описание метода покоординатного разбиения и алгоритма разделения с учетом связности. Какой из этих методов является более простым для практической реализации?

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 46 из 49 Темы заданий для самостоятельной работы Выполните реализацию параллельного алгоритма Флойда. Проведите вычислительные эксперименты. Постройте теоретические оценки с учетом параметров используемой вычислительной системы. Сравните полученные оценки с экспериментальными данными. Выполните реализацию параллельного алгоритма Прима. Проведите вычислительные эксперименты. Постройте теоретические оценки с учетом параметров используемой вычислительной системы. Сравните полученные оценки с экспериментальными данными. Разработайте программную реализацию алгоритма Кернигана – Лина. Дайте оценку возможности распараллеливания этого алгоритма.

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 47 из 49 Литература Гергель В.П. (2007). Теория и практика параллельных вычислений. – М.: Интернет- Университет, БИНОМ. Лаборатория знаний. Cormen, T.H., Leiserson, C. E., Rivest, R. L., Stein C. (2001). Introduction to Algorithms, 2nd Edition. - The MIT Press. (русский перевод Кормен Т., Лейзерсон Ч., Ривест Р. (1999). Алгоритмы: построение и анализ. – М.: МЦНТО.) Schloegel, K., Karypis, G., Kumar, V. (2000). Graph Partitioning for High Performance Scientific Simulations.

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 48 из 49 Следующая тема Параллельные методы решения дифференциальных уравнений в частных производных

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 49 из 49 Гергель В.П., профессор, д.т.н., руководитель Гришагин В.А., доцент, к.ф.м.н. Сысоев А.В., ассистент (раздел 1) Лабутин Д.Ю., ассистент (система ПараЛаб) Абросимова О.Н., ассистент (раздел 10) Гергель А.В., аспирант (раздел 12) Лабутина А.А., магистр (разделы 7,8,9, система ПараЛаб) Сенин А.В. (раздел 11) Авторский коллектив

Н.Новгород, 2005 г. Основы параллельных вычислений: Алгоритмы на графах © Гергель В.П. 50 из 49 Целью проекта является создание образовательного комплекса "Многопроцессорные вычислительные системы и параллельное программирование", обеспечивающий рассмотрение вопросов параллельных вычислений, предусматриваемых рекомендациями Computing Curricula 2001 Международных организаций IEEE-CS и ACM. Данный образовательный комплекс может быть использован для обучения на начальном этапе подготовки специалистов в области информатики, вычислительной техники и информационных технологий. Образовательный комплекс включает учебный курс "Введение в методы параллельного программирования" и лабораторный практикум "Методы и технологии разработки параллельных программ", что позволяет органично сочетать фундаментальное образование в области программирования и практическое обучение методам разработки масштабного программного обеспечения для решения сложных вычислительно-трудоемких задач на высокопроизводительных вычислительных системах. Проект выполнялся в Нижегородском государственном университете им. Н.И. Лобачевского на кафедре математического обеспечения ЭВМ факультета вычислительной математики и кибернетики ( Выполнение проекта осуществлялось при поддержке компании Microsoft. О проекте