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

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

Ускорить оптимизацию модели можно с помощью параллельных вычислений на многоядерных процессорах или многопроцессорных сетях. Используйте параллельные вычисления с Response Optimizer и sdo.optimize для оптимизации с использованием fmincon, lsqnonlin, и patternsearch методы. Параллельные вычисления не поддерживаются для fminsearch (Simplex search) метод.

Когда вы оптимизируете параметры модели с помощью параллельных вычислений, программное обеспечение использует доступный параллельный пул. Если нет доступных данных и вы выбираете Automatically create a parallel pool в настройках Parallel Computing Toolbox™, программа запускает параллельный пул, используя настройки этих настроек. Чтобы открыть параллельный пул, который использует определенный профиль кластера, используйте:

parpool(MyProfile);

MyProfile - имя профиля кластера.

Дополнительные сведения о создании профиля кластера см. в разделе Добавление и изменение профилей кластера (Parallel Computing Toolbox).

Моделируйте зависимости

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

Обеспечение доступности моделей-зависимостей для удаленных работников

Когда вы используете параллельные вычисления, Simulink® Design Optimization™ программного обеспечения помогает вам идентифицировать зависимости модели. Для этого в программе используется анализатор зависимостей. Анализ зависимостей может не найти все файлы, требуемые вашей моделью. Дополнительные сведения см. в разделе Возможностях анализатора зависимостей и ограничения. Если ваша модель имеет зависимости, которые не обнаружены или недоступны работниками параллельного пула, добавьте их в список зависимостей модели.

Зависимости становятся доступными для работников параллельного пула путем определения одного из следующих:

  • Зависимости файла: файлы зависимостей модели копируются в работники параллельного пула.

  • Зависимости пути: пути к зависимостям модели добавляются к путям работников параллельного пула. Если вы работаете в мультиплатформенном сценарии, убедитесь, что пути совместимы между платформами.

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

Для получения дополнительной информации смотрите:

Оптимизируйте проект с помощью параллельных вычислений (GUI)

Чтобы оптимизировать ответ модели с помощью параллельных вычислений в Response Optimizer:

  1. Убедитесь, что программное обеспечение имеет доступ к работникам параллельного пула, которые используют соответствующий профиль кластера.

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

  2. Откройте Response Optimizer для модели Simulink.

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

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

  4. На вкладке Response Optimization щелкните Options, чтобы открыть диалоговое окно Response Optimization Options.

  5. Выберите вкладку Parallel Options.

  6. Установите флажок Use the parallel pool during optimization.

    Эта опция проверяет зависимости в модели Simulink. Зависимости от файла отображаются в списке Model file dependencies и соответствующем пути к файлам в Model path dependencies. Файлы, перечисленные в Model file dependencies, копируются в удаленные рабочие места.

    Примечание

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

    Для получения дополнительной информации см. «Зависимости модели». В этом случае добавьте необнаруженные зависимости вручную.

  7. Добавьте любые зависимости файла, которые автоматическая проверка не обнаруживает.

    Укажите файлы в списке Model file dependencies, разделенных точками с запятой или отдельными линиями.

    Также нажмите кнопку Add file dependency, чтобы открыть диалоговое окно и выбрать файл для добавления.

    Примечание

    Если вы не хотите копировать файлы в удаленные рабочие места, удалите все записи в Model file dependencies списке. Заполните поле списка Model path dependencies щелчком мыши на Sync path dependencies from model и добавьте все необнаруженные зависимости пути. В сложение, в поле списка, обновляйте пути на локальных дисках, чтобы сделать их доступными для удаленных работников. Для примера измените C:\ на \\\\hostname\\C$\\.

  8. Если вы изменяете модель Simulink, повторно синхронизируйте зависимости, чтобы убедиться, что обнаружены новые зависимости. Щелкните Sync file dependencies from model на вкладке Parallel Options, чтобы повторить автоматическую проверку зависимостей для вашей модели.

    Это действие обновляет поле списка Model file dependencies с помощью любой новой зависимости файла, обнаруженной в модели.

  9. Нажмите OK.

  10. В Response Optimizer щелкните Optimize, чтобы оптимизировать ответ модели с помощью параллельных вычислений.

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

Оптимизируйте проект с помощью параллельных вычислений (кода)

Чтобы оптимизировать ответ модели с помощью параллельных вычислений в командной строке:

  1. Убедитесь, что программное обеспечение имеет доступ к работникам параллельного пула, которые используют соответствующий профиль кластера.

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

  2. Откройте модель.

  3. Задайте проект требования и конструктивные переменные. Для получения примера смотрите, Проект Оптимизацию для соответствия Переходной характеристики требованиям ( Кодам).

  4. Включите параллельные вычисления с помощью набора опций оптимизации, opt.

    opt = sdo.OptimizeOptions;
    opt.UseParallel = true;
  5. Найдите зависимости модели.

    [dirs,files] = sdo.getModelDependencies(modelname)

    Примечание

    sdo.getModelDependencies может не обнаружить все зависимости в вашей модели. Для получения дополнительной информации см. «Зависимости модели». В этом случае добавьте необнаруженные зависимости вручную.

  6. Изменение files включать любые зависимости файлов, которые sdo.getModelDependencies не обнаруживает.

    files = vertcat(files,'C:\matlab\work\filename.m')

    Примечание

    Если вы не хотите копировать файлы в удаленные рабочие места, используйте зависимости пути. Добавьте все необнаруженные зависимости пути к dirs и обновляйте пути на локальных дисках, чтобы сделать их доступными для удаленных работников. Посмотрите sdo.getModelDependencies для получения дополнительной информации.

  7. Добавьте зависимости файла для оптимизации.

    opt.ParallelFileDependencies = files; 
  8. Запустите оптимизацию.

    [pOpt,opt_info] = sdo.optimize(opt_fcn,param,opt);

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

Поиск и устранение проблем

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

| | | (Parallel Computing Toolbox)

Похожие примеры

Подробнее о