exponenta event banner

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

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

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

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

  • 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.

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

TtotalPTotal = 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 см. раздел Повышение производительности оптимизации с помощью параллельных вычислений.

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

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 (Панель параллельных вычислений) циклы. Время моделирования, принимаемое за итерацию, когда наборы поиска и опроса вычисляются параллельно, TtotalP, задается следующим уравнением:

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

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

Примечание

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

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

TtotalPTotal = ceil (Np × NsNw) + 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 см. раздел Повышение производительности оптимизации с помощью параллельных вычислений.

Связанные темы