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

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

Можно ускорить оценку параметра, используя параллельные вычисления на многоядерных процессорах или многопроцессорных сетях. Используйте параллельные вычисления с Parameter Estimator и 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™ программного обеспечения помогает вам идентифицировать зависимости модели. Для этого в программе используется анализатор зависимостей. Анализ зависимостей может не найти все файлы, требуемые вашей моделью. Дополнительные сведения см. в разделе Возможностях анализатора зависимостей и ограничения. Если ваша модель имеет зависимости, которые не обнаружены или недоступны работниками параллельного пула, добавьте их в список зависимостей модели.

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

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

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

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

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

Оцените параметры с помощью параллельных вычислений в приложении Parameter Estimator

Для оценки параметров модели с помощью параллельных вычислений в Parameter Estimator:

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

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

  2. Откройте Parameter Estimator для модели Simulink.

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

    Для получения дополнительной информации смотрите, Задайте данные оценки, Задайте параметры для оценки и Задайте опции оценки.

  4. На вкладке Parameter Estimation щелкните More Options, чтобы открыть диалоговое окно Estimation 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. На вкладке Parameter Estimation нажмите Estimate, чтобы оценить параметры модели с помощью параллельных вычислений.

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

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

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

  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?

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

См. также

| | | (Parallel Computing Toolbox)

Похожие темы