Нижегородский Государственный Университет им. Н.И. Лобачевского Программная система параллельных вычислений в задачах выбора глобально-оптимальных решений “Абсолют Эксперт” Параллельные алгоритмы поиска глобально-оптимальных решений Сидоров С.В. ItLab, 2006 1 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. Содержание 1. Описание предметной области 1.1. Постановка задачи 1.2. Методы решения задач оптимизации 1.3. Индексный метод с одной разверткой 2. Использование чисел расширенной точности 2.1. Необходимость использования чисел расширенной точности 2.2. Особенности использования чисел расширенной точности 3. Распараллеливание алгоритмов глобально поиска 3.1. 3.2. 3.3. 3.4. 3.5. 4. 2 Необходимость параллельных реализаций Распараллеливание индексного метода с одной разверткой Параллельный алгоритм Стронгина Пересылка точек испытаний поиска Распараллеливание индексного метода с множественной разверткой Планы на будущее ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 1.1. Описание предметной области Одна из типичных моделей процессов принятия решений – модель в виде задачи оптимизации f ( y ) min, где y y1 , ... , y N D y R : ai yi bi , 1 i N N В общем случае эта модель представляет собой набор функционалов, определенных на пространстве параметров, с помощью которых описывается ситуация принятия решения 3 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 1.2. Методы решения задач оптимизации Типичный способ решения сложных задач оптимизации – различные итерационные процедуры Итерация: – выбор очередной точки xi в области поиска y0 y1 y2 yk yn+1 yk+1 yn-1 yn – вычислении входящих в задачу функционалов в точке xi f ( y ) ( yn1 ) Процесс останавливается либо по числу итераций, либо по некоторому специальному условию 4 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 1.2. Методы решения задач оптимизации Простейший метод решения – «полный перебор» С увеличением размерности задачи экспоненциально растет число точек 5 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 1.2. Методы решения задач оптимизации Используя некоторую дополнительную информацию о функционалах можно строить эффективные алгоритмы поиска оптимума Один из таких эффективных алгоритмов – индексный метод Итерация в любой из точек состоит в: – вычислении следующей точки испытаний – последовательной проверке ограничений – вычислении значения функционала в выбранной точке Итерация заканчивается либо обнаружением нарушенного ограничения, либо вычислением критерия Номер последней вычисленной в точке функции называется индексом точки 6 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 1.2. Используемые сокращения ISE - индексный метод с одной разверткой ISEP - индексный метод с одной разверткой (параллельный) ISEMC - модифицированный индексный метод с одной разверткой GGSA - алгоритм Стронгина GGSAP - алгоритм Стронгина (параллельный) IME - индексный метод с множественной разверткой IMEP - индексный метод с множественной разверткой (параллельный) 7 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 1.3. Индексный метод с одной разверткой Редукция размерности … 1 0 Характеристическая схема R x =0 1 R … R … R 1 i 2 x 2 x 3 x i x i+1 x n-2 n-2 R x n-1 n-1 x =1 n Пусть R > R для всех j не равных i i j Деление интервала с максимальной характеристикой 8 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 1.3. Индексный метод с множественной разверткой 0 9 1 2 ННГУ, ВМК, МО ЭВМ, 2006 … L-1 L L+1 Сидоров С.В. 2.1. Необходимость использования чисел расширенной точности Проблема: – для достижения точности ε = (½)m в RN на отрезке [0, 1] требуется точность (½)m·N – при использовании типа double максимально возможная точность ограничена условием Nm < 52 – при m = 10 ограничение на размерность решаемых задач N =5 Выход: – использование чисел расширенной точности для представления точек на отрезке [0, 1] 10 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 2.2. Особенности использования чисел расширенной точности В работе были проанализированы некоторые библиотеки, в которых реализованы числа расширенной точности: GMP, MAPM, WinNTL Предпринята попытка написания собственной библиотеки Общий недостаток всех библиотек – уменьшение скорости выполнения простейших арифметических операций на 2-3 порядка Выход: максимальное уменьшение использования чисел расширенной точности 11 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 2.2. Особенности использования чисел расширенной точности В индексном методе широко используется и занимает существенное временя следующая операция – нахождение расстояния между точками в многомерном пространстве через возведение в степень 1/N расстояния между двумя точками из отрезка [0, 1] Пусть Ext – тип данных с расширенной точностью. Ext m = 0.999999999999999999999; double d, res1, res2; res1 = m.pow(1.0 / 10.0).toDouble(); res2 = pow(m.toDouble(), 1.0 / 10.0); Зададимся вопросом, насколько значение res1 отличается от res2? 12 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 2.2. Результаты использования чисел расширенной точности Удалось сократить замедление c 500 до 10 раз Ограничение Nm < 52 2Nm < 10308, т.е. Nm < 1000 Проведены эксперименты на задачах с N = 10 – 12 13 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 2.3. Результаты численных экспериментов Функция Растригина D F ( x) ( xi2 10 cos( 2xi )) 10 D i 1 Размерность D=9. область [-1.5,1.5]. Алгоритм: ISEP m = 15, L = 0, r = 2 Максимальное число итераций 3e6 Глобальный минимум F=0. Найденное приближение: С использованием чисел расширенной точности F*= 1.995057903858124 (остановка по причине нехватки оперативной памяти) Без использования чисел расширенной точности F*= 6.221869174733854 (остановка по причине нехватки точности) 14 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.1. Необходимость использования параллельных методов глобального поиска Решение современных прикладных задач имеет следующие особенности: – Трудоемкость вычисления функционалов – Высокая размерность пространства критериев – Требование высокой скорости нахождения глобального оптимума Выход: – использование параллельных алгоритмов глобально поиска для достижения выдвинутых требований 15 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.1. Две схемы распараллеливания Распараллеливание индексного метода с одной разверткой – Деление набора интервалов с максимальными характеристиками на каждой итерации. 1 процесс -1 интервал Распараллеливание индексного метода с множественной разверткой – «Равномерное» разделение интервала поиска [0,..,L+1] между процессами 16 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.2. Распараллеливание индексного метода с одной разверткой Построение набора интервалов с максимальными характеристиками R ( xi1 , xi2 ) R ( xi3 , xi4 ) ... R ( xin1 , xin ) x i1 x i2 Процесс 0 x i3 x i4 Процесс 1 x in 1 x in Процесс N Каждый процесс работает с тем интервалом, индекс которого соответствует его рангу в параллельной схеме 17 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.2. Распараллеливание индексного метода с одной разверткой Предположение: схема эффективна, если вычислительная трудоемкость функционалов, составляющих ограничения и критерий задачи оптимизации существенна После вычисления значений функционалов в найденной точке и характеристик новых интервалов каждый процесс рассылает остальным результаты своих вычислений Передача данных между процессами происходит синхронным образом 18 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.2. Модификация последовательного индексного метода с одной разверткой Реализация ISE (исходный последовательный алгоритм) – на каждой итерации выбирается интервал с максимальной характеристикой и делится; Реализация ISEMC (модифицированный последовательный алгоритм) – на итерации выбирается сразу серия интервалов с максимальными характеристиками и делится; – В отличие от параллельной версии процесс сам вычисляет индексы и значение функций во всех точках. 19 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.2. ISEP V.S. ISEMC Результаты сравнительных экспериментов параллельного и модифицированного последовательного алгоритма. Функция Растригина, размерности 5, 1000 итераций 45 40 35 ВРЕМЯ(CЕК) 30 25 IESP ISEMC 20 15 10 5 0 2 процессора 20 4 процессора ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.3. Параллельный алгоритм Стронгина Схема реализации GGSAP – Использование подхода, примененного в ISEP Отличие заключается в узкой сфере его применимости, обусловленной следующим фактом – алгоритм Стронгина позволяет решать только задачи без ограничений с одним критерием 21 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.4. Что пересылают друг другу процессоры? В состав отправляемой и получаемой информации входит: – – – – – – Дробная часть координаты точки; Номер развертки; Номер итерации, на которой вычислена точка; Значение последней вычисленной функции в точке; Индекс точки; Расстояние до следующей точки; Эта информация из переменных различных типов упаковывается в структуру 22 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.4. Возможности системы межпроцессорного взаимодействия Блокирующие и неблокирующие пересылки Возможность отправки трех типов блоков информации – Заблокированные точки испытаний; – Разблокированные точки испытаний; – Условие остановки. Возможность пересылки точек испытаний, содержащих как числа обычной, так и расширенной точности 23 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.4. Пересылка чисел расширенной точности Схема пересылки чисел расширенной точности Процесс 0 Процесс 1 Число X Число X MPI Структура Структура Необходимость формирования специальной структуры для отправки содержимого объекта класса числа расширенной точности 24 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.5. Распараллеливание индексного метода с множественной разверткой Основана на равном разделении интервала поиска [0, L + 1] между вычислительными процессами Каждый процесс на итерации выбирает интервал с максимальной характеристикой в своем интервале поиска Использованы неблокирующие посылки MPI. Схема обмена данными между процессами асинхронная 25 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.5. Распараллеливание индексного метода с множественной разверткой Матрица состояния поиска разделена на части, которые хранится на различных процессах Пересылка только точек множественной итерации Посылка точки 2 раза: – В виде заблокированной (без вычисленного значения функционала) – В виде разблокированной (с вычисленным значением функционала и индексом) 26 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.5. Распараллеливание индексного метода с множественной разверткой 0 1 2 Процесс i 27 ННГУ, ВМК, МО ЭВМ, 2006 … L-1 L L+1 Процесс j Сидоров С.В. 3.5. Функции неблокирующих посылок MPI, используемые в алгоритме int MPI_Isend(void *buf, int count, MPI_Datatype type, int dest, int tag, MPI_Comm comm, MPI_Request *request) – неблокируюущая отправка точки испытания поиска int MPI_Irecv(void *buf, int count, MPI_Datatype type, int – неблокирующий запрос на прием точки испытания поиска source, int tag, MPI_Comm comm, MPI_Request *request) int MPI_Test( MPI_Request *request, int *flag, MPI_status – проверка о завершении операции с идентификатором request *status) 28 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.5. Реализация неблокирующих приемов НЕТ ДА Первый прием? Вызов MPI_Test для всех вызванных ранее попыток неблокирующего приема Сохранение всех принятых точек во временную структуру •Установить число принятых на итерации точек равное 0 •Установить число неблокирующих запросов равное числу процессов В случае если на итерации принято число точек равное числу неблокирующих запросов, то увеличить число запросов на итерации на 1 Вызов серии MPI_Irecv неблокирующих запросов на прием установленного количества точек 29 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 3.2. IMEP V.S. IME Результаты сравнительных экспериментов параллельного и модифицированного последовательного алгоритма. Функция Растригина, размерности 5, 1000 итераций Ускорение 1,85 1,8 1,75 1,7 Ускорение 1,65 1,6 1,55 2 процессора 4 процессора Число процессоров 30 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. 4. Планы на будущее Реализация приложения визуализирующего: – поэтапно схему межпроцессорного взаимодействия по собранной трассе – ход вычислений на каждом процессе для учебных целей Реализация OpenMP версии алгоритмов Реализация смешанной MPI-OpenMP схемы алгоритмов Cluster and PDA – ideal friends 31 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. Литература Strongin R.G., Sergeev Ya.D. (2000). Global optimization with non-convex constraints: Sequential and parallel algorithms. Kluwer Academic Publisher, Dordrecht. В.П. Гергель, Р.Г. Стронгин. (2001). Параллельные вычисления в задачах выбора глобально-оптимальных решений для многопроцессорных кластерных систем. // Современные методы математического моделирования. Сборник лекций Всероссийской молодежной школы международной конференции “Математическое моделирование”. Самара, с. 4655. Sysoyev A.V. (2004). Program system of parallel computations for solving the tasks of global-optimum choice // VI International Congress on Mathematical Modeling/Book of abstracts, p 62. 32 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В. Вопросы ??? 33 ННГУ, ВМК, МО ЭВМ, 2006 Сидоров С.В.