Опубликован: 28.07.2007 | Доступ: свободный | Студентов: 2030 / 506 | Оценка: 4.53 / 4.26 | Длительность: 25:10:00
ISBN: 978-5-9556-0096-3
Специальности: Программист
Лекция 10:

Параллельные методы на графах

10.2.5. Анализ эффективности параллельных вычислений

Общий анализ сложности параллельного алгоритма Прима для нахождения минимального охватывающего дерева дает идеальные показатели эффективности параллельных вычислений:

S_p = \frac{n^2}{(n^2/p)}=p \quad \text{и} \quad E_p = \frac{n^2}{p\cdot(n^2/p)}=1. ( 10.4)

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

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

При выполнении вычислений на отдельной итерации параллельного алгоритма Прима каждый процессор определяет номер ближайшей вершины из Vj до охватывающего дерева и осуществляет корректировку расстояний di после расширения МОД. Количество выполняемых операций в каждой из этих вычислительных процедур ограничивается сверху числом вершин, имеющихся на процессорах, т.е. величиной \lceil n/p\rceil. Как результат, с учетом общего количества итераций n время выполнения вычислительных операций параллельного алгоритма Прима может быть оценено при помощи соотношения:

T_p(calc)=2n\lceil n/p \rceil \cdot \tau ( 10.5)
(здесь, как и ранее, \tau есть время выполнения одной элементарной скалярной операции).

Операция сбора данных от всех процессоров на одном из процессоров может быть произведена за \lceil log_{2}p\rceil итераций, при этом общая оценка длительности выполнения передачи данных определяется выражением (более подробное рассмотрение данной коммуникационной операции содержится в "Оценка коммуникационной трудоемкости параллельных алгоритмов" ):

T_p^1(comm)=n(\alpha \log_2 p +3w(p-1)/ \beta), ( 10.6)
где \alpha – латентность сети передачи данных, \beta – пропускная способность сети, а w есть размер одного пересылаемого элемента данных в байтах (коэффициент 3 в выражении соответствует числу передаваемых значений между процессорами – длина минимальной дуги и номера двух вершин, которые соединяются этой дугой).

Коммуникационная операция передачи данных от одного процессора всем процессорам вычислительной системы также может быть выполнена за \lceil log_{2}p\rceil итераций при общей оценке времени выполнения вида:

T_p^2(comm)=n\log_2p(\alpha+w/ \beta) ( 10.7)

С учетом всех полученных соотношений общее время выполнения параллельного алгоритма Прима составляет:

T_p=2n\lceil n/p\rceil\cdot\tau+n(\alpha\cdot\log_2p+3w(p-1)/ \beta+log_2p(\alpha+w/ \beta)). ( 10.8)

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

Вычислительные эксперименты для оценки эффективности параллельного алгоритма Прима осуществлялись при тех же условиях, что и ранее выполненные (см. п. 10.1.7).

Для оценки длительности \tau базовой скалярной операции проводилось решение задачи нахождения минимального охватывающего дерева при помощи последовательного алгоритма и полученное таким образом время вычислений делилось на общее количество выполненных операций – в результате подобных экспериментов для величины \tau было получено значение 4,76 нсек. Все вычисления производились над числовыми значениями типа int, размер которого на данной платформе равен 4 байта (следовательно, w=4 ).

Результаты вычислительных экспериментов даны в таблице 10.3. Эксперименты проводились с использованием двух, четырех и восьми процессоров. Время указано в секундах.

Таблица 10.3. Результаты вычислительных экспериментов для параллельного алгоритма Прима
Кол-во вершин Последовательный алгоритм Параллельный алгоритм
2 процессора 4 процессора 8 процессоров
Время Ускорение Время Ускорение Время Ускорение
1000 0,044 0,248 0,176 0,932 0,047 1,574 0,028
2000 0,208 0,684 0,304 1,800 0,115 2,159 0,096
3000 0,485 1,403 0,346 2,214 0,219 3,195 0,152
4000 0,873 1,946 0,622 3,324 0,263 5,431 0,161
5000 1,432 2,665 0,736 2,933 0,488 4,119 0,348
6000 2,189 2,900 0,821 4,291 0,510 7,737 0,283
7000 3,042 3,236 0,940 6,327 0,481 8,825 0,345
8000 4,150 4,462 0,930 6,993 0,593 10,390 0,399
9000 5,622 5,834 0,964 7,475 0,752 10,764 0,522
10000 7,512 6,990 1,075 8,597 0,874 14,095 0,533
Графики зависимости ускорения параллельного алгоритма Прима от числа используемых процессоров при различном количестве вершин в модели

Рис. 10.7. Графики зависимости ускорения параллельного алгоритма Прима от числа используемых процессоров при различном количестве вершин в модели

Сравнение времени выполнения эксперимента T^*_p и теоретической оценки Tp из (10.8) приведено в таблице 10.4 и на рис. 10.8.

Таблица 10.4. Сравнение экспериментального и теоретического времени работы алгоритма Прима
Количество вершин Последовательный алгоритм Параллельный алгоритм
2 процессора 4 процессора 8 процессоров
T_1^* T_2 T_2^* T_4 T_4^* T_8 T_8^*
1000 0,044 0,405 0,248 0,804 0,932 1,205 1,574
2000 0,208 0,820 0,684 1,613 1,800 2,412 2,159
3000 0,485 1,245 1,403 2,426 2,214 3,622 3,195
4000 0,873 1,679 1,946 3,245 3,324 4,834 5,431
5000 1,432 2,122 2,665 4,068 2,933 6,048 4,119
6000 2,189 2,575 2,900 4,896 4,291 7,265 7,737
7000 3,042 3,038 3,236 5,728 6,327 8,484 8,825
8000 4,150 3,510 4,462 6,566 6,993 9,705 10,390
9000 5,622 3,991 5,834 7,408 7,475 10,929 10,764
10000 7,512 4,482 6,990 8,255 8,597 12,155 14,095
Графики экспериментально установленного времени работы параллельного алгоритма Прима и теоретической оценки в зависимости от количества вершин в модели при использовании двух процессоров

Рис. 10.8. Графики экспериментально установленного времени работы параллельного алгоритма Прима и теоретической оценки в зависимости от количества вершин в модели при использовании двух процессоров

Как можно заметить из табл. 10.4 и рис. 10.8, теоретические оценки определяют время выполнения алгоритма Прима с достаточно высокой погрешностью. Причина такого расхождения может состоять в том, что модель Хокни менее точна при оценке времени передачи сообщений с небольшим объемом передаваемых данных. Для уточнения получаемых оценок необходимым является использование других более точных моделей расчета трудоемкости коммуникационных операций – обсуждение этого вопроса проведено в "Оценка коммуникационной трудоемкости параллельных алгоритмов" .