Ускорение оптимизации отклика с помощью параллельных вычислений

Когда использовать параллельные вычисления для оптимизации отклика

Вы можете использовать Simulink® Разработайте Optimization™ программное обеспечение с помощью программного обеспечения Parallel Computing Toolbox™, чтобы ускорить оптимизацию отклика модели Simulink. Использование параллельных вычислений может сократить время оптимизации модели в следующих случаях:

  • Модель содержит большое количество настроенных параметров и Gradient descent способ выбран для оптимизации.

  • The Pattern search способ выбран для оптимизации.

  • Модель содержит большое количество неопределенных параметров и неопределенных значений параметров.

  • Модель является сложной и занимает много времени, чтобы симулировать.

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

Для получения информации о том, как программное обеспечение распределяет симуляции и ожидаемое ускорение, смотрите, Как Параллельные Вычисления Ускоряет Оптимизацию.

Для получения информации о конфигурировании системы и использовании параллельных вычислений смотрите Использование параллельных вычислений для оптимизации отклика.

Как параллельные вычисления ускоряют оптимизацию

Можно включить параллельные вычисления с Gradient descent и Pattern search методы оптимизации. Когда вы включаете параллельные вычисления, программное обеспечение распределяет независимые симуляции во время оптимизации на нескольких сеансах работы с MATLAB. В следующих разделах описываются, какие симуляции распределены, и потенциальное ускорение с помощью параллельных вычислений.

Параллельные вычисления методом градиентного спуска

Когда вы выбираете Gradient descent как метод оптимизации, модель моделируется во время следующих расчетов:

  • Ограничение и расчет целевого значения - Одна симуляция на итерацию

  • Ограничение и целевой градиент расчетов - Две симуляции для каждого настроенного параметра на итерацию

  • Линия поиска расчетов - Несколько симуляций на итерацию

Общее время, Ttotal, взятый за итерацию для выполнения этих симуляций, задается следующим уравнением:

Ttotal=T+(Np×2×T)+(Nls×T)=T×(1+(2×Np)+Nls)

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

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

TtotalP=T+(ceil(NpNw)×2×T)+(Nls×T)=T×(1+2×ceil(NpNw)+Nls)

где Nw - количество работников MATLAB.

Примечание

Уравнение не включает временные перегрузки, связанные с конфигурированием системы для параллельных вычислений и загрузкой программного обеспечения Simulink на удаленные Работников MATLAB.

Ожидаемая скорость для общего времени оптимизации задается следующим уравнением:

TtotalPTtotal=1+2×ceil(NpNw)+Nls1+(2×Np)+Nls

Для примера, для модели с Np=3, Nw=4, и Nls=3, ожидаемая скорость равна 1+2×ceil(34)+31+(2×3)+3=0.6.

Для примера улучшения эффективности, достигнутого с Gradient descent метод, см. Улучшение оптимизации Эффективности использовании параллельных вычислений.

Параллельные вычисления с методом поиска шаблона

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

Общее время, Ttotal, взятый за итерацию для выполнения этих симуляций, задается следующим уравнением:

Ttotal=(T×Np×Nss)+(T×Np×Nps)=T×Np×(Nss+Nps)

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

Когда вы используете параллельные вычисления, программное обеспечение Simulink Design Optimization распределяет симуляции, необходимые для расчетов набора поиска и опроса, которые оцениваются в отдельных parfor (Parallel Computing Toolbox) циклов. Время симуляции, затраченное на итерацию, когда наборы поиска и опроса вычисляются параллельно, TtotalP, задается следующим уравнением:

TtotalP=(T×ceil(Np×NssNw))+(T×ceil(Np×NpsNw))=T×(ceil(Np×NssNw)+ceil(Np×NpsNw))

где Nw - количество работников MATLAB.

Примечание

Уравнение не включает временные перегрузки, связанные с конфигурированием системы для параллельных вычислений и загрузкой программного обеспечения Simulink на удаленные Работников MATLAB.

Ожидаемая скорость для общего времени оптимизации задается следующим уравнением:

TtotalPTtotal=ceil(Np×NssNw)+ceil(Np×NpsNw)Np×(Nss+Nps)

Для примера, для модели с Np=3, Nw=4, Nss=15, и Nps=2, ожидаемая скорость равна ceil(3×154)+ceil(3×24)3×(15+2)=0.27.

Примечание

Использование Pattern search метод с параллельными вычислениями может не ускорить время оптимизации. Чтобы узнать больше, смотрите Почему я не вижу ускорение оптимизации, которое я ожидал с помощью параллельных вычислений?

Для примера улучшения эффективности, достигнутого с Pattern search метод, см. Улучшение оптимизации Эффективности использовании параллельных вычислений.

Похожие темы