exponenta event banner

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

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

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

При оценке параметров модели с помощью параллельных вычислений программа использует доступный параллельный пул. Если они недоступны и в настройках Toolbox™ параллельных вычислений выбран параметр Автоматически создавать параллельный пул, программа запускает параллельный пул, используя настройки, указанные в этих настройках. Чтобы открыть параллельный пул, использующий определенный профиль кластера, используйте:

parpool(MyProfile);

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

Сведения о создании профиля кластера см. в разделе Добавление и изменение профилей кластера (панель инструментов параллельных вычислений).

Зависимости модели

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

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

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

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

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

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

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

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

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

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

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

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

  2. Откройте окно Оценка параметров (Parameter Estimator) для модели Simulink.

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

    Дополнительные сведения см. в разделах Указание оценочных данных, Указание параметров для оценки и Указание параметров оценки.

  4. На вкладке «Оценка параметров» нажмите кнопку «Дополнительные параметры», чтобы открыть диалоговое окно «Параметры оценки».

  5. Перейдите на вкладку «Параметры параллелизма».

  6. Установите флажок Использовать параллельный пул во время оптимизации.

    Эта опция используется для проверки зависимостей в модели Simulink. Зависимости файлов отображаются в списке Зависимости файлов модели (Model file dependencies) и в соответствующем пути к файлам в окне Зависимости путей модели (Model path 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. Нажмите кнопку ОК.

  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. Проверьте, имеют ли удаленные работники доступ ко всем зависимостям модели. Зависимости модели включают переменные данных и файлы, необходимые для выполнения модели.

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

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

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

См. также

| | | (Панель инструментов параллельных вычислений)

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