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

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

Чтобы выполнить глобальный анализ чувствительности, вы выбороте параметры модели и состояния, задайте функцию затрат путем создания требования проекта на сигналах модели и оцените функцию затрат для каждой выборки. Оценка модели для многих выборок может быть длительной. Ускорить оценку можно в Sensitivity Analyzer, или в командной строке, с помощью параллельных вычислений на многоядерных процессорах или многопроцессорных сетях.

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

parpool(MyProfile);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. Откройте Sensitivity Analyzer для модели Simulink.

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

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

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

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

    Эта опция проверяет зависимости в модели 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. В Sensitivity Analyzer щелкните Evaluate, чтобы выполнить анализ чувствительности с помощью параллельных вычислений. Требования к проекту оцениваются для каждой комбинации значений параметров в вашем наборе параметров.

Эта функциональность не поддерживается в Simulink Online™.

Выполните анализ чувствительности, используя параллельные вычисления (код)

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

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

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

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

  3. Задайте функцию стоимости и сгенерируйте выборки параметров для анализа чувствительности. Для получения примера смотрите Исследование проекта Используя Выборку параметра (Код).

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

    opt = sdo.EvaluateOptions;
    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. Задайте имя модели, которая будет оцениваться параллельно.

    opt.EvaluatedModel = modelname;
  9. Оцените модель.

    [pOpt,opt_info] = sdo.evaluate(fcn,samples,opt);

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

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

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

См. также

| | | (Parallel Computing Toolbox)

Похожие темы