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

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

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

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

parpool(MyProfile);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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)

Похожие темы