Одним из перспективных направлений повышения эффективности оптимизационного процесса является использование многопроцессорных вычислительных систем. В этом случае сокращение реального (астрономического) времени вычислений может быть достигнуто двумя путями: за счёт ускорения расчётов непосредственно «внутри» модели с применением параллельных вычислений, а также за счёт адаптивной организации самого процесса оптимизации под параллельную архитектуру. Первый подход предполагает использование или разработку математических моделей анализа, пригодных для работы на параллельных процессорах. Второй требует разработки или модификации соответствующих методов оптимизации.
Нами разработан новый алгоритм оптимизации, использующий параллельные процессоры. Алгоритм позволяет достигать коэффициента ускорения, превышающего суммарное число задействованных процессоров. Например, при использовании 20 процессоров может быть достигнуто ускорение поиска оптимального решения в 40 и более раз. Наши алгоритмы позволяют максимально задействовать имеющиеся вычислительные ресурсы, поскольку число одновременно используемых процессоров не зависит от размерности задачи оптимизации. Так, при 10 варьируемых параметрах возможно использование 1, 20, 100 и более процессоров. Применение наших алгоритмов параллельной оптимизации позволяет формулировать и реально решать задачи, в которых для вычисления одного значения критерия оптимизации требуются часы или даже десятки часов процессорного времени — например, при трёхмерном CFD-моделировании. Объединение наших параллельных процедур с алгоритмами многоуровневой оптимизации существенно расширяет область решаемых сложных практических задач.
Схема алгоритма параллельной оптимизации IOSO

Главный процессор (Master) выполняет операции основного блока IOSO — блока анализа данных и выработки стратегии движения. В рамках этого блока производится анализ накопленной информации о переменных, ограничениях и критериях оптимизации. Определяется окрестность текущего решения, выявляются перспективные области для дальнейшего поиска и формируется последовательность следующих операций.
По завершении каждой итерации возможны три варианта действий:
I. Завершение процесса оптимизации. Выполняется при срабатывании критерия останова в автоматическом режиме работы или при принудительном завершении процесса исследователем в интерактивном режиме.
II. Генерация плана эксперимента. Формируется набор точек в начальной области поиска (на начальном этапе оптимизации) или в перспективной подобласти пространства поиска. Для каждой точки этого набора подчинённые процессоры (Slave) параллельно вычисляют значения критериев оптимизации и проверяют выполнение ограничений. Полученная информация передаётся обратно в блок анализа данных и выработки стратегии, после чего начинается следующая итерация.
III. Основной сценарий работы (наиболее вероятный):
- а) Синтез функций отклика для критериев оптимизации и ограничений. Функции различаются как по структуре, так и по области поиска. Синтез выполняется с помощью подчинённых процессоров.
- б) Оптимизация полученных аппроксимирующих функций с использованием подчинённых процессоров. Результатом этого шага является набор точек — кандидатов на решение исходной задачи оптимизации.
- в) Вычисление истинных значений критериев оптимизации и ограничений для точек-кандидатов с использованием подчинённых процессоров. Полученная информация передаётся обратно в блок анализа данных и выработки стратегии, после чего начинается следующая итерация.
Принципиальное отличие разработанного алгоритма параллельной оптимизации от базового алгоритма IOSO состоит в том, что блок анализа данных и выработки стратегии получает информацию не об одной точке, а о целом наборе точек, число которых равно числу подчинённых процессоров. Это обстоятельство может оказывать существенное влияние на эффективность работы алгоритма. Для оценки данного эффекта было проведено тестирование разработанного алгоритма.