Новости
О Центре
Кластер
Обучение
Основной курс по параллельному программированию
Учебные курсы
Магистратура
Дополнительное образование
Работы студентов
Библиотека
Исследования
Конференции
Полезные ссылки
NVIDIA
Контакты
О сайте
Имя:
Пароль:
запомнить:
Забыли пароль? Регистрация

Отчет по лабораторной работе

Постановка задачи.

Задача о нахождении минимального остовного дерева часто встречается в подобной постановке: допустим, есть n городов, которые необходимо соединить дорогами, так, чтобы можно было добраться из любого города в любой другой (напрямую или через другие города). Разрешается строить дороги между заданными парами городов и известна стоимость строительства каждой такой дороги. Требуется решить, какие именно дороги нужно строить, чтобы минимизировать общую стоимость строительства. Эта задача может быть сформулирована в терминах теории графов как задача о нахождении минимального остовного дерева в графе, вершины которого представляют города, рёбра — это пары городов, между которыми можно проложить прямую дорогу, а вес ребра равен стоимости строительства соответствующей дороги.

Цель данной работы - реализация алгоритма, вычисляющего минимальное остовное дерево.

Результатом работы программы должно быть получено множество рёбер минимального остовного дерева и замер времени вычисления.

Требуется реализовать последовательный и параллельный алгоритмы. Реализацию параллельного алгоритма провести средствами MPI.

Метод решения ( последовательная версия ).

Алгоритм: 0.   Вводится множество T вершин, которые уже добавлены в результирующее дерево. 1.    Выбирается произвольная вершина и добавляется в множество T. 2.    До тех пор пока в дерево не добавлены все вершины делать:    a.    Найти вершину, расстояние от дерева T до которой минимально.    b.    Добавить ее к дереву.

Анализ эффективности.

В идеальном случае оценки эффективности для оценки сложности параллельного алгоритма Прима для нахождения минимального охватывающего дерева вычисляются по следующим формулам:
       
В ходе вычислений в зависимости от количества выбранных вершин вычислительная нагрузка на процессоры может различаться.
Для уточнения полученных показателей эффективности оценим более точно количество выполненных операций и затраты на передачу данных между процессами. На каждом шаге параллельный алгоритм выбирает вершину с минимальным расстоянием до строящегося дерева и корректирует веса di для каждой вершины. Количество операций при каждой из этих процедур ограничено числом . Поэтому на выполнение n итераций алгоритм затратит следующее время ( r - время на выполнение элементарной операции ):


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


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


Тогда суммарное время работы алгоритма может быть представлено соотношением:


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


Демонстрация


Результаты экспериментов


Об авторах

Лавренов И.П., Медведев М.С.
Группа 84-09

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012