600 likes | 917 Views
Нижегородский государственный университет им. Н.И. Лобачевского Зимняя школа по параллельному программированию Практикум по технологиям параллельного программирования (на примере учебно-исследовательской задачи). Гергель В.П., проф., д.т.н., кафедра МО ЭВМ ВМК ННГУ. Учебная задача.
E N D
Нижегородский государственный университетим. Н.И. ЛобачевскогоЗимняя школа по параллельному программированиюПрактикум по технологиям параллельного программирования (на примере учебно-исследовательской задачи) Гергель В.П., проф., д.т.н.,кафедра МО ЭВМ ВМК ННГУ
Учебная задача В качестве учебного примера рассматриваетсяпроблема численного решения задачи Дирихле для уравнения Пуассона Практикум по технологиям параллельного программирования
Последовательные методы решения Метод конечных разностей Практикум по технологиям параллельного программирования
Итерационные схемы Метод Гаусса-Зейделя Трудоемкость T = kmN2 N - число узлов по каждой координате m - число операций на узел k - количество итераций Практикум по технологиям параллельного программирования
Алгоритм 1.1 Практикум по технологиям параллельного программирования
Примеррасчетов N = 100 eps= 0.1 k = 210 Практикум по технологиям параллельного программирования
Организация параллельных вычислений • Системы с общей памятью (мультипроцессоры) • Системы с распределенной памятью (мультикомпьютеры) Практикум по технологиям параллельного программирования
Системы с общей памятью Возможные подходы • новые алгоритмические языки (OCCAM,…), • существующие алгоритмические языки, расширенные набором операторов для параллельных вычислений (HPF,…), • использование внеязыковых средств (директивы, комментарии, ...) или библиотек Практикум по технологиям параллельного программирования
Технология OpenMP • Вилочный (fork-join) –пульсирующий - параллелизм - выделение в программе параллельных областей Практикум по технологиям параллельного программирования
Алгоритм 1.2 Практикум по технологиям параллельного программирования
Результаты экспериментов Практикум по технологиям параллельного программирования
Оценка подхода • (+) Алгоритм обеспечивает решение задачи • (+) Может быть задействовано до N2процессов • (-) Чрезмерная синхронизация • (-) Слабая загрузка процессоров Низкая эффективность Практикум по технологиям параллельного программирования
Проблема: блокировки при взаимоисключении Практикум по технологиям параллельного программирования
Алгоритм 1.3 Практикум по технологиям параллельного программирования
Результаты экспериментов Практикум по технологиям параллельного программирования
Оценка подхода • (+) Существенное снижение обращений к общей переменной • (-) Снижение показателя максимально возможного параллелизма до N Лучшие показатели ускорения Практикум по технологиям параллельного программирования
Проблема: Неоднозначность вычислений !!! Результаты различаются от запуска к запуску – метод хаотической релаксации (chaotic relaxation) Причина: состязание потоков (race condition) Практикум по технологиям параллельного программирования
Состязание потоков Выход: захват и блокировка используемых строк Практикум по технологиям параллельного программирования
Проблема: взаимоблокировка Тупик Практикум по технологиям параллельного программирования
Разрешение тупиков Решение: соблюдение строгой последовательности блокировки строк !!! Однозначность вычислений не обеспечивается Практикум по технологиям параллельного программирования
Метод Гаусса-Якоби • Разделение места хранения результатов на предыдущей и текущей итерации Практикум по технологиям параллельного программирования
Алгоритм 1.4 Практикум по технологиям параллельного программирования
Результаты экспериментов Практикум по технологиям параллельного программирования
Оценка подхода • (+) Однозначность вычислений • (-) Использование дополнительной памяти • (-) Меньшая скорость сходимости Возможность повышения эффективности расчетов Практикум по технологиям параллельного программирования
Схема чередования обработки строк Практикум по технологиям параллельного программирования
Оценка подхода • (+/-) Однозначность вычислений, но не совпадение результатов последовательных расчетов • (-) Меньшая скорость сходимости Возможность повышения эффективности расчетов Практикум по технологиям параллельного программирования
Волновые схемы параллельных вычислений… • Выполнение только тех вычислительных действий, которые выполняет последовательный метод и, как результат, получение совпадающих результатов приводит к порождению волновой схемы расчетов (wavefront or hyperplane methods) Практикум по технологиям параллельного программирования
Волновые схемы параллельных вычислений Практикум по технологиям параллельного программирования
Алгоритм 1.5 Практикум по технологиям параллельного программирования
Алгоритм 1.5' Практикум по технологиям параллельного программирования
Результаты экспериментов Практикум по технологиям параллельного программирования
Оценка подхода • (-) Неэффективность использования кэша Возможность повышения эффективности расчетов Практикум по технологиям параллельного программирования
Блочное представление данных Практикум по технологиям параллельного программирования
Алгоритм 1.6 Практикум по технологиям параллельного программирования
Результаты экспериментов Практикум по технологиям параллельного программирования
Оценка подхода • (+) Возможность тонкой подстройки под имеющийся кэш • (-) Возможность простоев процессоров Возможность повышения эффективности расчетов Практикум по технологиям параллельного программирования
Балансировка вычислительной нагрузки Очередь заданий Практикум по технологиям параллельного программирования
Организация параллельных вычислений для систем с распределенной памятью • Разделение данных • Обмен сообщениями Практикум по технологиям параллельного программирования
Ленточная схема разделения данных Практикум по технологиям параллельного программирования
Схема алгоритма Практикум по технологиям параллельного программирования
Схема обмена данными между процессорами !!! Последовательное выполнение операций передачи данных Практикум по технологиям параллельного программирования
Параллельное выполнение операций передачи данных Практикум по технологиям параллельного программирования
Коллективные операции Практикум по технологиям параллельного программирования
Результаты экспериментов Практикум по технологиям параллельного программирования
Оценка подхода • (-) Результаты расчетов отличаются от результатов последовательных вычислений Практикум по технологиям параллельного программирования
Волновые вычисления при ленточной схеме разделения данных Практикум по технологиям параллельного программирования
Блочная схема разделения данных… Практикум по технологиям параллельного программирования
Блочная схема разделения данных Практикум по технологиям параллельного программирования
Вычислительный конвейер (множественная волна) Практикум по технологиям параллельного программирования
Операции передачи данных Практикум по технологиям параллельного программирования