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

Как ускорить оптимизацию?

  • Во времени оптимизации преобладает время, необходимое для симуляции модели. При оптимизации Simulink® модель, можно включить режим Accelerator путем выбора Accelerator из раскрывающегося списка под Simulation в редакторе Simulink, чтобы резко сократить время оптимизации.

    Примечание

    Режим Rapid Accelerator в программном обеспечении Simulink не поддерживается для ускорения оптимизации. Для получения дополнительной информации смотрите Использование режима Accelerator во время симуляций.

  • Выбор решателя ОДУ также может значительно повлиять на общее время оптимизации. Используйте жесткий решатель, когда симуляция делает много небольших шагов, и используйте решатель с фиксированным шагом, когда такие решатели дают достаточно точные симуляции для вашей модели. (Эти решатели должны быть точными во всем пространстве поиска параметра.)

  • Уменьшите количество настроенных элементов или параметров компенсатора и ограничьте их область значений, чтобы сузить пространство поиска.

  • При определении неопределенности параметра (не доступно при оптимизации откликов в Control System Designer) сохраните количество выборочных значений маленьким, поскольку количество симуляций растет экспоненциально с количеством выборок. Для примера сетка из 3 параметров с 10 выборок значениями для каждого параметра требует 103= 1000 симуляций на итерацию.

Почему результаты оптимизации с использованием параллельных вычислений и без них отличаются?

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

  • Когда вы используете параллельные вычисления с Pattern search метод, поиск является более комплексным и может привести к другому решению.

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

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

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

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

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

Почему оптимизация с помощью параллельных вычислений не делает никаких прогрессов?

Для устранения неполадки:

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

  2. Проверьте, имеют ли удаленные рабочие доступ ко всем зависимостям модели. Зависимости модели включают переменные данных и файлы, требуемые моделью для запуска.

    Дополнительные сведения см. в разделе Зависимости модели.

Почему оптимизация с помощью параллельных вычислений не останавливается, когда я нажимаю кнопку Stop optimization?

Когда вы используете параллельные вычисления с Pattern search метод, программное обеспечение должно подождать, пока текущая итерация оптимизации не завершится, прежде чем оно уведомит работников об остановке. Оптимизация не завершается сразу, когда вы кликаете Stop, и, вместо этого, кажется, продолжает выполняться.