Интернет Университет Суперкомпьютерных технологий Анализ сложности вычислений и оценка возможности распараллеливания Учебный курс Основы параллельных вычислений Гергель В.П., профессор, д.т.н. Нижегородский университет Лекция 4:
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 2 из 38 Модель вычислений в виде графа "операции- операнды" Схема параллельного выполнения алгоритма Определение времени выполнения параллельного алгоритма Пример: Вычисление частных сумм последовательности числовых значений Пример: Умножение матриц Заключение Содержание
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 3 из 38 Введение Принципиальный момент при разработке параллельных алгоритмов - анализ эффективности использования параллелизма: –Оценка эффективности распараллеливания конкретных выбранных методов выполнения вычислений, –Оценка максимально возможного ускорения процесса решения рассматриваемой задачи (анализ всех возможных способов выполнения вычислений)
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 4 из 38 Модель в виде графа "операции-операнды" используется для описания существующих информационных зависимостей в выбираемых алгоритмах В наиболее простом виде модель основывается на предположениях: –время выполнения любых вычислительных операций является одинаковым и равняется 1, –передача данных между вычислительными устройствами выполняется мгновенно без каких-либо затрат времени. Граф "операции-операнды"…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 5 из 38 Граф "операции-операнды"… Множество операций, выполняемые в исследуемом алгоритме решения вычислительной задачи, и существующие между операциями информационные зависимости могут быть представлены в виде ациклического ориентированного графа – множество вершин графа, представляющих выполняемые операции алгоритма, R – множество дуг графа; дуга r(i,j) принадлежит графу только если операция j использует результат выполнения операции i Вершины без входных дуг могут использоваться для задания операций ввода, а вершины без выходных дуг – для операций вывода. – множество вершин графа без вершин ввода, – диаметр графа (длина максимального пути)
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 6 из 38 Пример : граф алгоритма вычисления площади прямоугольника, заданного координатами двух противолежащих углов Граф "операции-операнды"…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 7 из 38 Схемы вычислений обладают различными возможностями для распараллеливания, при построении модели вычислений может быть поставлена задача выбора наиболее подходящей для параллельного исполнения вычислительной схемы алгоритма Операции алгоритма, между которыми нет пути в рамках выбранной схемы вычислений, могут быть выполнены параллельно Граф "операции-операнды"
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 8 из 38 Пусть p есть количество процессоров, используемых для выполнения алгоритма. Тогда для параллельного выполнения вычислений необходимо задать множество (расписание): –i - есть номер операции, –P i - есть номер процессора, –t i - есть время начала выполнения i-ой операции. Должны выполняться условия: –один и тот же процессор не должен назначаться разным операциям в один и тот же момент времени: –к назначаемому моменту выполнения операции все необходимые данные уже должны быть вычислены: Схема параллельного выполнения алгоритма
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 9 из 38 Модель параллельного алгоритма: Время выполнения параллельного алгоритма с заданным расписанием: Время выполнения параллельного алгоритма с оптимальным расписанием: Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 10 из 38 Минимально возможное время решения задачи при заданном количестве процессоров (определение наилучшей вычислительной схемы): Оценка наиболее быстрого исполнения алгоритма (при использовании паракомпьютера – системы с неограниченным числом процессоров): Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 11 из 38 Время выполнения последовательного алгоритма для заданной вычислительной схемы: Время выполнения последовательного алгоритма: Время последовательного решения задачи: Определение времени выполнения параллельного алгоритма… Подобные оценки необходимы для определения эффекта использования параллелизма
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 12 из 38 Теорема 1 Минимально возможное время выполнения параллельного алгоритма определяется длиной максимального пути вычислительной схемы алгоритма: Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 13 из 38 Теорема 2 Пусть для некоторой вершины вывода в вычислительной схеме алгоритма существует путь из каждой вершины ввода. Кроме того, пусть входная степень вершин схемы (количество входящих дуг) не превышает 2. Тогда минимально возможное время выполнения параллельного алгоритма ограничено снизу значением: где n есть количество вершин ввода в схеме алгоритма Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 14 из 38 Теорема 3 При уменьшении числа используемых процессоров время выполнения алгоритма увеличивается пропорционально величине уменьшения количества процессоров, т.е. : Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 15 из 38 Теорема 4 Для любого количества используемых процессоров справедлива следующая верхняя оценка для времени выполнения параллельного алгоритма: Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 16 из 38 Теорема 5 Времени выполнения алгоритма, которое сопоставимо с минимально возможным временем T, можно достичь при количестве процессоров порядка p~T 1 /T, а именно: При меньшем количестве процессоров время выполнения алгоритма не может превышать более, чем в 2 раза, наилучшее время вычислений при имеющемся числе процессоров, т.е.: Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 17 из 38 Рекомендации –при выборе вычислительной схемы алгоритма должен использоваться граф с минимально возможным диаметром (теорема 1), –для параллельного выполнения целесообразное количество процессоров определяется величиной p~T 1 /T (теорема 5), –время выполнения параллельного алгоритма ограничивается сверху величинами, приведенными в теоремах 4 и 5. Определение времени выполнения параллельного алгоритма…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 18 из 38 Задача нахождения частных сумм последовательности числовых значений (prefix sum problem): Задача вычисления общей суммы имеющегося набора значений: Пример: Вычисление частных сумм…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 19 из 38 Последовательный алгоритм суммирования элементов числового вектора Пример: Вычисление частных сумм… Данный " стандартный " алгоритм суммирования допускает только строго последовательное исполнение и не может быть распараллелен
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 20 из 38 Пример: Вычисление частных сумм… Каскадная схема суммирования –V 2 = { (v i1,…,v ili ), 0ik, 1l i 2 -i n } есть вершины графа, –(v 01,…, v 0n ) есть операции ввода, –(v 11,…,v 1n/2 ) есть операции первой итерации и т.д., –R 2 = { (v i-1,2j-1 v ij ),(v i-1,2j v ij ), 1ik, 1l i 2 -i n } есть множество дуг графа.
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 21 из 38 Пример: Вычисление частных сумм… Количество итераций каскадной схемы суммирования: Общее количество операций суммирования: При параллельном исполнении отдельных итераций каскадной схемы общее количество параллельных операций суммирования является равным:
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 22 из 38 Показатели ускорения и эффективности каскадной схемы алгоритма суммирования: где p=n/2 есть необходимое для выполнения каскадной схемы количество процессоров. –время параллельного выполнения каскадной схемы совпадает с оценкой для паракомпьютера (теорема 2), –эффективность использования процессоров уменьшается при увеличении количества суммируемых значений: Пример: Вычисление частных сумм…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 23 из 38 Пример: Вычисление частных сумм… Модифицированная каскадная схема: –Все суммируемые значения подразделяются на (n/log 2 n) групп, в каждой из которых содержится (log 2 n) элементов; для каждой группы вычисляется сумма значений при помощи последовательного алгоритма суммирования; –На втором этапе для полученных (n/log 2 n) сумм отдельных групп применяется обычная каскадная схема:
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 24 из 38 Пример: Вычисление частных сумм… Для выполнения первого этапа требуется (log 2 n) выполнение параллельных операций при использовании p= (n/log 2 n) процессоров Для выполнения второго этапа необходимо log 2 (n/log 2 n)log 2 n параллельных операций для p=(n/log 2 n)/2 процессоров Время выполнения параллельного алгоритма составляет для p= (n/log 2 n) процессоров.
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 25 из 38 С учетом полученных оценок показатели ускорения и эффективности модифицированной каскадной схемы определяются соотношениями: Пример: Вычисление частных сумм… –По сравнению с обычной каскадной схемой ускорение уменьшилось в 2 раза, –Для эффективности нового метода суммирования можно получить асимптотически ненулевую оценку снизу: –Модифицированный каскадный алгоритм является стоимостно- оптимальным (стоимость вычислений пропорциональна времени выполнения последовательного алгоритма):
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 26 из 38 Вычисление всех частных сумм… –Вычисление всех частных сумм на скалярном компьютере может быть получено при помощи обычного последовательного алгоритма суммирования при том же количестве операций –При параллельном исполнении применение каскадной схемы в явном виде не приводит к желаемым результатам. Пример: Вычисление частных сумм… Достижение эффективного распараллеливания требует привлечения новых подходов (может быть, даже не имеющих аналогов при последовательном программировании) для разработки новых параллельно-ориентированных алгоритмов решения задач
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 27 из 38 Вычисление всех частных сумм… –Алгоритм, обеспечивающий получение результатов за log 2 n параллельных операций: Перед началом вычислений создается копия S вектора суммируемых значений (S=x), Далее на каждой итерации суммирования i, 1ilog 2 n, формируется вспомогательный вектор Q путем сдвига вправо вектора S на 2 i-1 позиций (освобождающиеся при сдвиге позиции слева устанавливаются в нулевые значения); итерация алгоритма завершается параллельной операцией суммирования векторов S и Q. Пример: Вычисление частных сумм…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 28 из 38 Вычисление всех частных сумм… Пример: Вычисление частных сумм…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 29 из 38 Вычисление всех частных сумм –Общее количество выполняемых алгоритмом скалярных операций определяется величиной: –Необходимое количество процессоров определяется количеством суммируемых значений: –Показатели ускорения и эффективности: Пример: Вычисление частных сумм
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 30 из 38 Пример: Умножение матриц… Умножение матриц: или
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 31 из 38 Пример: Умножение матриц Граф информационных зависимостей (до уровня операций умножения строк матрицы А и столбцов матрицы В): B с 11 с 12 с 13 с 32 с 33 с 31 с 22 с 23 с 21 a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 b 11 b 21 b 31 b 12 b 22 b 32 b 13 b 23 b 33 A C Задача умножения матрицы на вектор может быть сведена к выполнению m·n независимых операций умножения строк матрицы A на столбцы матрицы B
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 32 из 38 Заключение Описывается модель вычислений в виде графа "операции-операнды", которая может использоваться для описания существующих информационных зависимостей в выбираемых алгоритмах решения задач Приводятся теоретические оценки, которые могут быть использованы при определении максимального возможного распараллеливания Для демонстрации применимости рассмотренных моделей и методов анализа параллельных алгоритмов в разделе рассматриваются задачи нахождения частных сумм последовательности числовых значений и умножения матриц
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 33 из 38 Как определяется время выполнения параллельного алгоритма? Как определить минимально возможное время решения задачи? Какие оценки следует использовать в качестве характеристики времени последовательного решения задачи? Как определить минимально возможное время параллельного решения задачи по графу "операнды – операции"? При каком числе процессоров могут быть получены времена выполнения параллельного алгоритма, сопоставимые по порядку с оценками минимально возможного времени решения задачи? Вопросы для обсуждения
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 34 из 38 Разработайте модель и выполните оценку максимально возможных показателей ускорения и эффективности параллельных вычислений: 1. Для задачи скалярного произведения двух векторов, 2. Для задачи поиска максимального и минимального значений для заданного набора числовых данных, 3. Для задачи нахождения среднего значения для заданного набора числовых данных, 4. Для задачи умножения матрицы на вектор, 5. Для задачи матричного умножения Темы заданий для самостоятельной работы
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 35 из 38 Гергель В.П. Теория и практика параллельных вычислений. - М.: Интернет-Университет, БИНОМ. Лаборатория знаний, – Лекция 2 Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.: БХВ-Петербург, Дополнительные учебные курсы: Барский А.Б. Параллельное программирование. Воеводин В.В. Вычислительная математика и структура алгоритмов. Литература…
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 36 из 38 Общая схема разработки параллельных методов Следующая тема
Н.Новгород, 2008 г. Основы параллельных вычислений: Оценка возможности распараллеливания © Гергель В.П. 37 из 38 Гергель В.П., профессор, д.т.н., декан факультета вычислительной математики и кибернетики Нижегородский университет Контакты