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

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

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

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

parpool(MyProfile);

MyProfile является именем кластерного профиля.

Для получения информации относительно создания кластерного профиля, смотрите, Добавляют и Изменяют Кластерные Профили (Parallel Computing Toolbox).

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

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

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

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

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

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

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

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

Выполните анализ чувствительности Используя параллельные вычисления (графический интерфейс пользователя)

Выполнять анализ чувствительности с помощью параллельных вычислений в инструменте Sensitivity Analysis:

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

    Для получения дополнительной информации смотрите, Конфигурируют Вашу Систему для Параллельных вычислений.

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

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

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

  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);

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

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

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

Смотрите также

| | |

Похожие темы