Методы и программное обеспечение для решения задач исследования операций на многопроцессорных системах1 Ю.Г. Евтушенко, М.А. Посыпкин, И.Х. Сигал ВЦ РАН, ИСА РАН Задача поиска глобального минимума (максимума) функции на допустимом множестве X состоит в отыскании такой точки x* X , что f ( x* ) f ( x) ( f ( x* ) f ( x) ) для всех x X . Далее будем предполагать, что решается задач минимизации функции целевой функции f. Ограничения, связанные с вычислительной погрешностью или недостатком ресурсов, часто не позволяют найти точное решение данной задачи. В этом случае переходят к поиску приближенного решения, т.е. точки из множества -оптимальных решений X * x X : f ( x) f ( x* ) . Поиск точного решения можно рассматривать как частный случай поиска приближенного решения с 0 . Многие из методов решения задач глобальной оптимизации основаны на идее постепенного сокращения множества, в котором может находиться точка минимума с помощью правил редукции и условий отсева. Несмотря на существенные различия, обусловленные спецификой решаемых задач, можно выделить общую схему организации вычислений. В процессе работы алгоритма поддерживается текущий список подмножеств, который в начальный момент совпадает с множеством P , содержащим допустимое множество. Также периодически происходит обновление наименьшего из вычисленных значений целевой функции, называемого рекордом. Общая схема: 1. Инициализировать список подмножеств L P. 2. Выбрать элемент Pi L . 3. Применить правила отсева и редукции к множеству Pi и получить множество Pi ' . 4. Если множество Pi ' не пусто, то выбрать точку xi X Pi ' и модифицировать рекордное решение: если f xi f r , то положить xr xi , f r f ( xi ) . В случае Pi ' , то перейти к шагу 6. 5. Разбить множество Pi ' на несколько подмножеств и добавить полученные подмножества к списку L . 6. Если список L пуст, то завершить алгоритм, в противном случае перейти к шагу 2. Наличие общей схемы работы различных методов позволяет разработать универсальную программную инфраструктуру для решения задач оптимизации на многопроцессорных системах. Инфраструктура содержит каркасные модули, реализующие приведенную схему для трех типовых архитектур: классической последовательной архитектуры, многопроцессорных систем с общей памятью и многопроцессорных систем с распределенной памятью. Программа для решения конкретной задачи на заданной платформе получается объединением проблемно-зависимых модулей для этой задачи и каркасных модулей, реализующих общую схему для выбранной платформы. Разработанная программная инфраструктура реализована в виде библиотеки классов Си++. Для реализации каркасных модулей применяется механизм шаблонов, технологии параллельных вычислений MPI и POSIX Threads. На системах с общей памятью несколько потоков независимо выполняют итерации 1-6, 1 Работа выполнена при поддержке программы П-14 президиума РАН, грантов РФФИ № 08-01-00619-a, 08-07-00072-а, 10-07-00301-а обращаясь к общему списку L. Для предотвращения неизбежных потерь, связанных с частой синхронизацией при доступе к общему списку, каждый процесс также поддерживает локальный список подмножеств. Часть подмножеств из этого списка периодически копируется в общий. В момент, когда локальный список исчерпывается, поток берет новое подмножество для обработки из общего списка. Реализация для систем с распределенной памятью следует той же самой схеме, но вместо копирования применяется передача сообщений по сети. Ключевым для управления процессом вычислений является выбор параметров, определяющих частоту обменов и число передаваемых данных. Для уменьшения числа итераций применяются эвристические алгоритмы, позволяющие быстро находить рекордное значение, близкое к оптимальному. Тем самым усиливается отсев подмножеств, заведомо не содержащих оптимальных решений. Вычислительные ресурсы распределяются между процессами, выполняющими приведенную выше общую схему алгоритма, и процессами, выполняющими эвристики. Важнейшим фактором, влияющим на производительность, является соотношение количества процессоров, реализующих эти два подхода. Технология параметризованных классов, применяемая в библиотеке, делает ее легко расширяемой за счет добавления проблемно-зависимых модулей для конкретных оптимизационных задач. На данный момент с помощью библиотеки реализованы программы для решения задач непрерывной безусловной и условной оптимизации, частично-целочисленных задач с функциональными ограничениями и некоторых задач дискретной оптимизации. Также реализован метод неравномерных покрытий решения многокритериальных задач. Реализованные в рамках библиотеки алгоритмы для задач непрерывной и частично-целочисленной оптимизации основаны на методе неравномерных покрытий[1]. Добавлены дополнительные правила отсева, основанные на необходимых условиях оптимальности первого порядка. Введены методы редукции параллелепипеда, учитывающие целочисленность переменных, а также, выпуклость функциональных ограничений. С помощью разработанной программы решения задач частично-целочисленного программирования удалось существенно улучшить известные результаты для тестовой задачи минимизации затрат при изготовлении парового котла. В рамках библиотеки реализован комбинированный метод ветвей и границ для решения задачи об одномерном булевом ранце. Применяется комбинирование метода ветвей и границ с эвристическими алгоритмами улучшения решения в соответствии с приведенной выше схемой. Также используется комбинирование фронтального и одностороннего метода обхода дерева ветвлений. При этом, одностороннее ветвление реализуется по методу Горовица-Сахни на базе булевого вектора, что позволяет добиться высокой скорости работы алгоритмах[2]. В работе [3] приводится описание реализации метода ветвей и границ для задачи коммивояжера с использованием средств библиотеки. Были проведены серии вычислительных экспериментов для различных наборов входных данных на параллельных системах с общей и распределенной памятью для различных задач дискретной и непрерывной оптимизации. Результаты экспериментов показывают, что разработанное программное обеспечение позволяет получать высокие показатели параллельного ускорения, эффективности и масштабируемости[4]. 1. Евтушенко Ю.Г. Численный метод поиска глобального экстремума функций (перебор на неравномерной сетке) // ЖВМ и МФ, 1971, Т. 11, № 6, С. 1390-1403. 2. Посыпкин М. А., Сигал И. Х. Комбинированный параллельный алгоритм решения задачи о ранце, Известия РАН, Теория и системы управления, № 4, 2008 , С. 50-58. 3. Игнатьев А.Л. Решение задачи коммивояжера на многопроцессорных системах с общей и распределенной памятью// Научный сервис в сети Интернет: масштабируемость, параллельность, эффективность: Труды Всероссийской суперкомпьютерной конференции (21-26 сентября 2009 г., г. Новороссийск). М.: Изд-во МГУ, 2009, C. 134-137. 4. Y. Evtushenko, M. Posypkin, I. Sigal, A framework for parallel large-scale global optimization // Computer Science - Research and Development 23(3), 2009, pp. 211-215.