«СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ ПРИ ИССЛЕДОВАНИИ МИНИМАЛЬНЫХ ДОМИНИРУЮЩИХ МНОЖЕСТВ В МОДЕЛИ КОМПЬЮТЕРНОЙ AD-HOC СЕТИ» Выполнил: Моисеев Денис Цели работы • Проектирование параллельных алгоритмов • Разработка программ с использованием различных технологий • Сравнение полученных результатов Ad hoc сети Минимальные доминирующие множества Доминирующее множество – подмножество множества вершин графа такое, что любая вершина или входит в это подмножество или смежна с одной из вершин этого подмножества. Статистическое моделирование • Поскольку граф случайный, то и его характеристики случайны. • С точки зрения маршрутизации важно знать сколько (N) вершин в минимальном доминирующем множестве. • Мы можем интересоваться характеристиками этого количества N: математическое ожидание, дисперсия, функция распределения. • Поиск множества необходимо производить эффективно и быстро std::thread ● ● Встроенная поддержка на уровне языка Удобный механизм потоков Технология Исходная программа thread, 1 поток thread, 4 потока Время выполнения 155.834с. Процент 156.977с 65.046с 101% 42% 100% OpenMP ● ● Простая интеграция в готовую программу Возможность компиляции в системе без поддержки OpenMP Технология Время выполнения 155.834с. Исходная программа OpenMP, 1 поток 155.835с OpenMP, 4 потока 72.625с Процент 100% 100% 47% Message Passing Interface ● Быстродействие ● Распределенная память Технология Исходная программа MPI, 1 поток MPI, 4 потока Время выполнения 155.834с. Процент 156.003c 50.059с 100% 32% 100% OpenCL ● ● Гетерогенные вычисления Использование вычислительных мощностей графической системы Технология Время выполнения 155.834с. Исходная программа OpenCL, хост 69.371c OpenCL, AMD 5770 12.541с Процент 100% 45% 8% Erlang ● Функциональная парадигма ● Простое создание процессов Технология Исходная программа Erlang, без процессов Erlang, с процессами Время выполнения 155.834с. 172.126c 64.312с Процент 100% 110% 41% Сравнение технологий Технология Время выполнения Исходная программа 155.834с OpenCL, AMD 5770 12.541c MPI 50.059c Erlang 64.312c std::thread 65.046c OpenMP 72.625 Процент 100% 8% 32% 41% 42% 47% Заключение • Графические вычисления дают высокий прирост к производительности • OpenMP и std:thread позволяют внедрять технологии параллельного программирования • MPI обеспечивает хорошую производительность • Erlang позволяет писать программы в декларативном стиле и избежать проблем с синхронизацией Спасибо за внимание!