Научная статья на тему 'Программный комплекс параллельных вычислений в задачах выбора глобально-оптимальных решений'

Программный комплекс параллельных вычислений в задачах выбора глобально-оптимальных решений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
190
52
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОГОЭКСТРЕМАЛЬНАЯ ОПТИМИЗАЦИЯ / РЕДУКЦИЯ РАЗМЕРНОСТИ / КРИВЫЕ ПЕАНО / ИНФОРМАЦИОННО-СТАТИСТИЧЕСКИЕ АЛГОРИТМЫ / МОДИФИЦИРОВАННАЯ МНОЖЕСТВЕННАЯ РАЗВЕРТКА / ОБЪЕКТНАЯ ДЕКОМПОЗИЦИЯ / ПРОГРАММНЫЙ КОМПЛЕКС / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / СИСТЕМА УПРАВЛЕНИЯ КЛАСТЕРОМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сысоев Александр Владимирович

Рассматривается программный комплекс для параллельного решения многомерных многоэкстремальных задач условной глобальной оптимизации. Описаны архитектура комплекса, основная функциональность, компонентный состав. Описана методика использования комплекса, представлены результаты применения при решении прикладной задачи.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Сысоев Александр Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PARALLEL COMPUTING SOFTWARE SYSTEM IN THE PROBLEMS OF FINDING GLOBAL OPTIMAL SOLUTIONS

A parallel computing software system is considered for multidimensional multiextremal problems of conditional global optimization. The system architecture, its main functional features and component structure are described. The system usage technique is outlined and the results of its application to an applied problem solution are presented.

Текст научной работы на тему «Программный комплекс параллельных вычислений в задачах выбора глобально-оптимальных решений»

Информационные технологии Вестник Нижегородского университета им. Н.И. Лобачевского, 2012, № 5 (2), с. 425-431

УДК 519.853.4

ПРОГРАММНЫЙ КОМПЛЕКС ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ В ЗАДАЧАХ ВЫБОРА ГЛОБАЛЬНО-ОПТИМАЛЬНЫХ РЕШЕНИЙ

© 2012 г. А.В. Сысоев

Нижегородский госуниверситет им. Н.И. Лобачевского

[email protected]

Поступила в редакцию 10.09.2012

Рассматривается программный комплекс для параллельного решения многомерных многоэкстремальных задач условной глобальной оптимизации. Описаны архитектура комплекса, основная функциональность, компонентный состав. Описана методика использования комплекса, представлены результаты применения при решении прикладной задачи.

Ключевые слова: многоэкстремальная оптимизация, редукция размерности, кривые Пеано, информационно-статистические алгоритмы, модифицированная множественная развертка, объектная декомпозиция, программный комплекс, параллельные вычисления, система управления кластером.

Введение

В работе рассматривается программный комплекс, предназначенный для параллельного решения задач глобальной оптимизации. Комплекс реализует информационно-алгоритмическую модель, описанную в [1], и предоставляет пользователю следующую основную функциональность:

- Постановка задачи оптимизации - поддерживается один из наиболее общих способов задания функционалов в виде динамической библиотеки.

- Выбор метода глобального поиска и настройка его параметров - поддерживаются как последовательные, так и параллельные информационно-статистические методы [2-6], а также редукция размерности на основе модифицированной множественной развертки [7].

- Выполнение процесса поиска оценки глобального оптимума - поддерживаются два режима функционирования: «базовый» - комплекс запускается в режиме localonly библиотеки MPI, используя имеющиеся в системе процессоры/ядра, или в режиме разделения времени; «основной» - комплекс работает на кластере под управлением выбранной операционной системы.

- Сбор накапливаемой оптимизационной информации для последующего анализа - накапливаемая в виде матрицы состояния поиска (МСП) [8] информация сохраняется по окончании решения задачи или по команде приостановки процесса поиска и может использоваться для решения модифицированных задач, информационно совместимых по постановке.

- Визуальное отображение функционалов задачи и оптимизационной информации - для двумерных функционалов обеспечивается построение графиков, для функционалов размерности больше двух - построение двумерных «проекций» по выбранным параметрам (двум) при фиксированных значениях остальных (N - 2 координаты).

В работе рассматриваются принципы организации программного комплекса, высокоуровневая архитектура, реализация основных компонентов. Приводится методика использования и результаты решения практической задачи.

1. Архитектура программного комплекса

Архитектура программного комплекса спроектирована на основе объектной декомпозиции предметной области [9], в соответствии с которой выделены ключевые абстракции, их параметры и функциональность, выявлены имеющиеся связи, после чего выполнена их группировка и объединение в компоненты по функциональному принципу.

Как результат, разработана архитектура комплекса, включающая два уровня: системный и прикладной (рис. 1). Каждый из уровней детализируется далее программными компонентами, подсистемами и модулями.

Системный уровень представляет собой библиотеку структур данных и методов, реализующих всю необходимую функциональность программного комплекса: от постановки задачи оптимизации и управления данными до получения оценки глобального оптимума.

Программный комплекс

Прикладной уровень

Консольный решатель

БІІ-решатель

ОШ-решатель

Системный уровень

Рис. 1. Компонентная архитектура программного комплекса

На прикладном уровне, используя необходимые структуры данных системного уровня, можно построить оптимизационный решатель любого типа. В настоящий момент программный комплекс содержит реализацию трех таких решателей: в виде консольного приложения -обеспечивает взаимодействие с системой управления кластером; в виде динамически подключаемой библиотеки - обеспечивает взаимодействие с прикладным пакетом; в виде оконного приложения - обеспечивает взаимодействие с конечным пользователем.

Рассмотрим архитектуру компонентов системного и прикладного уровней более подробно.

2. Программные компоненты системного уровня

Структуры данных, полученные в результате объектной декомпозиции предметной области и анализа разработанной информационно-алгоритмической модели, сгруппированы по функциональности и оформлены в виде программных компонентов системного уровня.

Компонент Постановка задачи содержит

реализацию структур данных, необходимых для представления объекта исследования и результатов поиска глобального оптимума. Компонент Поисковая информация обеспечивает хранение и эффективную обработку как данных, получаемых в ходе решения, так и служебных, необходимых для обслуживания процесса поиска. Компонент Процесс поиска реализует общую логику работы: решение поставленной задачи выбранным методом, управление задействованными компонентами и модулями.

Компонентная схема системного уровня представлена на рис. 2.

Компонент Постановка задачи построен на трех структурах данных: объект оптимизации, задача оптимизации и задание оптимизации. Такой набор структур данных обеспечивает возможность максимально гибкой постановки оптимизационной задачи в нескольких вариантах одновременно, как полностью, так и частично информационно совместимых.

Общая архитектура компонента представлена на рис. 3.

Каждое задание оптимизации содержит несколько задач, отличающихся областью поиска, подмножеством фиксированных и/или дискрет-

Программный комплекс

---------------------------------------------

Системный уровень

Рис. 2. Программные компоненты системного уровня

ных параметров. Все задачи в рамках одного задания основаны на одном и том же объекте оптимизации. В то же время постановки, представленные экземплярами структуры данных задание оптимизации, могут быть основаны на разных объектах, как следствие, каждое задание оптимизации также содержит ссылку на объект, на котором оно построено. Поддержка нескольких объектов оптимизации позволяет, при необходимости, одновременно работать с разными моделями одного и того же объекта исследований.

ния оценки глобального минимума миллионы итераций, оперативной памяти может быть недостаточно, таким образом, в компоненте Поисковая информация необходима организация работы с внешней памятью. В программном комплексе реализована собственная специализированная система страничной организации памяти. Таблицей виртуальных страниц оперирует подсистема Менеджер памяти. Каждая страница хранит один блок МСП и связанную с ним локальную очередь характеристик. По исчерпании доступных страниц оперативной памяти

Компонент Постановка задачи

Задание оптимизации

Рис. 3. Архитектура компонента Постановка задачи

Компонент Поисковая информация отвечает за работу с МСП. Матрица состояния поиска описывается каталогом дескрипторов блоков, каждый из которых содержит указатели на блок матрицы и локальную очередь характеристик этого блока. Для хранения МСП в задачах большой размерности, требующих для отыска-

включается подсистема подкачки, которая обеспечивает сохранение выбранных для вытеснения страниц на жестком диске и загрузку в оперативную память блоков, требуемых для дальнейшей обработки.

Общая архитектура компонента представлена рис. 4.

Компонент Поисковая информация

МПС

Дескриптер блока 1

Блок 1 Очередь 1

Дескриптер блока N

3=

Блок N Очередь N

Менеджер памяти

Страница 1 Страница 2 Страница 5

Блок X Блок У Блок 1

Подсистема подкачки

Блок К Блок К2 Блок Кі

Рис. 4. Архитектура компонента Поисковая информация

Компонент Процесс поиска является управляющим. Его назначение - создание экземпляров всех задействованных в процессе решения оптимизационной задачи структур данных: метода оптимизации, набора заданий оптимизации (каждое со своим списком задач), набора компонент Поисковая информация, каждая из которых соответствует одному заданию и хранит его данные. Затем процесс поиска осуществляет инициализацию созданных структур данных требуемыми значениями параметров и запускает цикл выполнения итераций поиска.

3. Программные компоненты прикладного уровня

Как указано на рис. 1, прикладной уровень программного комплекса представлен тремя решателями: в виде консольного приложения, в виде динамически подключаемой библиотеки и в виде оконного 'т^л^-приложения.

Основное назначение программного комплекса - выполнение расчетов по поиску глобально-оптимального решения задачи оптимизации на кластерных системах. Таким образом, наиболее важный интерфейс над системным уровнем представляет собой консольную программу, которая может быть запущена в качестве приложения в системе управления кластером. Настройка консольного решателя осуществляется через аргументы командной строки.

В зависимости от указанных при запуске параметров консольный решатель создает экземпляры требуемых структур данных: процесса поиска, выбранного метода оптимизации, выбранного способа представления МСП и др., на основе данных из Ш1-библиотеки с постановкой задачи строит объект оптимизации, задачу и задание. Кроме того, создаются экземпляры требуемых обслуживающих структур данных: развертки, очереди характеристик, менеджера памяти и т. д.

Решатель в виде динамически подключаемой библиотеки позволяет использовать программный комплекс в качестве оптимизационного компонента, подключаемого к пакету, решающему прикладные задачи, где одним из этапов решения является поиск оптимального выбора. Б11-решатель предоставляет те же возможности, что и консольный, за исключением того, что компонент системного уровня Постановка задачи в процессе построения экземпляров требуемых структур данных использует информацию, передаваемую прикладным пакетом напрямую, а не берет ее из Ш1-библиотеки.

ОШ-решатель позволяет в удобной для

пользователя форме поставить задачу оптимизации; настроить параметры выбранного метода; построить (если позволяет время расчета значений) график функционалов; запустить решение задачи (используется консольный решатель) в «настольном» режиме; наблюдать за процессом поиска - получаемые методом точки испытаний отображаются на графике, приостанавливать и продолжать решение задачи.

4. Методика применения

программного комплекса

Использование программного комплекса GlobEx для решения задач оптимального выбора предполагает подготовку dll-библиотеки, содержащей параметры задачи (такие как размерность, число функционалов), и функции языка C++ для вычисления функционалов, описывающих зависимости между параметрами (либо являющихся оболочками для вызова расчета функционалов из других прикладных пакетов, например MATLAB).

Следующий шаг - запуск консольного решателя с указанием параметров командной строки, описывающих задачу оптимизации, которая должна быть построена на основе данных из dll-библиотеки; выбранный метод оптимизации и его параметры; выбранную структуру хранения МСП и т.д. Реализация параллельного индексного метода выполнена в консольном решателе с помощью MPI, таким образом, при необходимости запустить расчет в параллельном режиме в локальной сети требуется использовать способ запуска, характерный для использованной реализации библиотеки MPI. В настоящий момент программный комплекс поддерживает три реализации: MPICH 1.0, MPICH 2.0 и Microsoft MPI.

Основной режим использования программного комплекса - расчеты на кластерных системах, таким образом, для решения сложных прикладных задач требуется выполнить постановку приложения в очередь системы управления кластером. Расчетным модулем в этом случае будет являться консольный решатель. Конкретный способ постановки приложения в очередь зависит от системы управления кластером (комплекс применялся на кластерах под управлением Microsoft Compute Cluster Server 2003 и Microsoft HPC Server 2008).

Наконец, еще одним режимом работы с программным комплексом является «настольный», в котором основным инструментом выступает программный компонент GUI-решатель, позволяющий в более удобной для человека интерак-

тивной форме формулировать задачи оптимизации и наблюдать за процессом решения.

Использование консольного решателя требует задания аргументов командной строки при запуске, первые два из которых являются обязательными, остальные указываются при необходимости смены постановки задачи, сформированной в dll или настройке метода поиска, а также структуры хранения МСП.

Рассмотрим некоторые аргументы более подробно.

• Общий вид командной строки

console.exe -dll <dll_name> -

criteria <criterion_numbers>

[other options]

Все аргументы задаются парой вида -имя_ключа <значение ключа>. Например, простейший вариант запуска консольного решателя для задачи из предыдущего раздела будет выглядеть так:

console.exe -dll dlls\dll_ex1_3constr_d.dll -criteria 3

• Параметр -dll <dll_name> служит для указания полного имени динамической библиотеки с формулировкой задачи оптимального выбора. Имя при необходимости может включать полный путь, в том числе сетевой. В общем случае для поиска указанной библиотеки действуют стандартные правила операционной системы. В командной строке, указанной в предыдущем пункте, библиотека будет искаться по относительному пути в каталоге dlls.

• Параметр -criteria <crite-rion_numbers> позволяет указать, какие из функционалов, расчет которых выполняется в функции function из динамической библиотеки, являются критериями. Формат: список чисел, разделенных запятыми.

• Параметр -constraints <con-straints_numbers> позволяет указать список номеров ограничений. Формат: список чисел, разделенных запятыми.

• Параметр -method <method_ID> служит для выбора метода поиска, который будет использоваться при решении задачи оптимального выбора. По умолчанию используется значение 3, задающее параллельную версию индексного метода с множественными развертками.

• Параметр -eps <stop_precision> задает точность, которая используется в условии остановки в численном методе поиска. Формат: вещественное число.

• Параметр -L <evolvents> позволяет

указать число разверток. Используется, только если расчет выполняется методом с множественными развертками. Формат: целое число большее нуля или равное нулю. При L = 0 используется одна развертка.

• Параметр -m <evolve_precision> задает точность построения развертки. Формат: целое число. Рекомендуемое значение > 10.

• Параметр -r <reliability> задает параметр индексного метода. Формат: вещественное число.

• Параметр -itermax <iter_number> задает максимальное число итераций, которое может быть выполнено методом.

• Параметр -storagetype <stor-age_type_ID> позволяет указать, какой вариант структуры хранения МСП будет использоваться в процессе решения. Формат: целое число. Значение по умолчанию равно 5 - использовать блочные деревья с локальными очередями.

5. Применение программного комплекса

С использованием разработанного программного комплекса была решена задача оптимизации профиля железнодорожного колеса1.

Требуется оптимизировать профиль колеса, описанного с помощью ß-сплайна, построенного на основе 11 точек на кромке, основании кромки и поверхности качения. Границы изменения параметров [-1, 1]. Задача состоит в минимизации невязки между посчитанной и требуемой разностью радиусов вращения Дг(х) = = r1(x) - r2(x):

„ \ 2\(Дг"Г(у)-Дгса1с(x,У))2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

f (x) = 1——--------------------> min,

(я ))2

где yi является i-й точкой дискретизации бокового смещения колесной пары, K - число таких точек. Для улучшения свойств оптимума целевая функция задачи записывается в виде

ф(x) = log10(106F(x)) ^ min.

Ограничения задачи (на толщину кромки колеса, на максимальный угол наклона колесной пары) аналитической формы не имеют и заданы лишь механизмом вычисления в модели колесной пары в программном пакете MATLAB. Во избежание генерации нереалистичных профилей введены дополнительные ограничения на переменные проектирования. Общее число ограничений - 6. Функционалы задачи являются вычислительно трудоемкими - расчет значений в одной точке занимает более 10 секунд на современных процессорах с тактовой частотой

порядка 3 ГГ ц.

Для иллюстрации сложности задачи оценим объем вычислений, необходимый для отыскания оценки глобального оптимума путем полного перебора на сетке выбранной точности. Взяв десять вариантов значения каждого из одиннадцати параметров, получим 1011 точек, что дает порядка 1012 секунд, то есть 3 года непрерывного счета на суперкомпьютере с десятью тысячами процессоров.

Таким образом, указанная задача может быть решена только при использовании параллельных реализаций алгоритмов глобальной оптимизации [10, 11].

Рассматриваемая задача была решена с использованием разработанного программного комплекса параллельных вычислений в задачах глобально-оптимального выбора [12]. Параметры решения: число разверток 4, плотность построения разверток т = 10. Для решения использовался четырехузловой кластер в технологическом университете г. Делфта. Была получе-

*

на оценка оптимума ф = 2.7676 в точке у[0] = = 8.041, у[1] = 4.174, у[2] = 10.619, у[3] = 2.748, у[4] = 9.857, у[5] = 8.432, у[6] = = 9.447, у[7] = = 7.709, у[8] = 8.978, у[9] = 9.35, у[10] = 8.881 (значения округлены до 10-3).

Расчет занял 27 часов, при этом значение функционалов задачи было посчитано 4 297 + + 4 415 + 4 236 + 4 266 = 17 214 раз.

Расчеты, проведенные специалистами технологического университета г. Делфта для колеса оптимизированного профиля, показали, что его ресурс возрос до 120 тыс. км пробега (более чем в пять раз по сравнению с колесом оригинального профиля), а максимально допустимая скорость - с 40 до 60 м/с.

Работа выполнена в лаборатории «Информационные технологии» ВМК ННГУ при поддержке Совета по грантам Президента Российской Федерации (грант №НШ-1960.2012.9), а также ФЦП «Научные и научнопедагогические кадры инновационной России», соглашение № 14.B37.21.0393.

Примечание

1. Работа выполнена в рамках совместного проекта «Быстрые вычисления в глобальной оптимизации: по-

следовательные и параллельные среды» между ННГУ и Технологическим университетом г. Делфта, Нидерланды, - грант Netherlands Organization for Scientific Research (NWO) № 047.016.014.

Список литературы

1. Сысоев А.В. Об одной информационно-алгоритмической модели процесса параллельного глобального поиска // Вестник ННГУ. 2011. Вып. 3(2). C. 304-311.

2. Gergel V.P. A Global Optimization Algorithm for Multivariate Functions with Lipschitzian First Derivatives // Journal of Global Optimization. 1997. V. 10. №3. P. 257-281.

3. Strongin R.G., Sergeyev Ya.D. Global optimization with non-convex constraints. Sequential and parallel algorithms. Dordrecht: Kluwer Academic Publishers, 2000.

4. Стронгин Р.Г. Поиск глобального оптимума. М.: Знание, 1990.

5. Стронгин Р.Г. Численные методы в многоэкстремальных задачах. М.: Наука, 1978.

6. Стронгин Р.Г., Гергель В.П., Баркалов К.А. Параллельные методы решения задач глобальной оптимизации // Известия высших учебных заведений. Приборостроение. 2009. Т. 52. №10. С. 25-33.

7. Сысоев А.В. О построении семейства множественных разверток на основе кривых Пеано для параллельного решения задач глобально-оптимального поиска // Известия вузов. Приборостроение. 2011. Вып. 10. С. 100-102.

8. Gergel V.P. A Software System for Multiextremal Optimization // European Journal of Operational Research. 1993. V. 65. №3. P. 305-313.

9. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Второе издание. Бином, 1998.

10. Gergel V.P., Sergeyev Ya.D. Sequential and Parallel Algorithms for Global Minimizing Functions with Lipschitzian Derivatives // Computers & Mathematics with Applications. 1999. V. 37. №4-5. P. 163-179.

11. Gergel V.P., Strongin R.G. Parallel Computing for Globally Optimal Decision Making on Cluster Systems // Future Generation Computer Systems. 2005. V. 21. №5. P. 673-678.

12. Баркалов К.А., Рябов В.В., Сидоров С.В., Сысоев А. В. Об опыте решения задач многоэкстремальной оптимизации на высокопроизводительных кластерных системах // Материалы XI Всероссийской научно-технической конференции «Аэрокосмическая техника, высокие технологии и инновации». Пермь, 2008. С. 36-39.

PARALLEL COMPUTING SOFTWARE SYSTEM IN THE PROBLEMS OF FINDING GLOBAL OPTIMAL SOLUTIONS

A.V. Sysoyev

A parallel computing software system is considered for multidimensional multiextremal problems of conditional global optimization. The system architecture, its main functional features and component structure are described. The system usage technique is outlined and the results of its application to an applied problem solution are presented.

Keywords: multiextremal optimization, dimension reduction, Peano curves, information-statistical algorithms, modified multiple mappings, object-oriented decomposition, software system, parallel computing, cluster management system.

i Надоели баннеры? Вы всегда можете отключить рекламу.