Чтобы выполнить глобальный анализ чувствительности, вы производите параметры модели и состояния, задаете функцию стоимости путем создания конструктивных требований на сигналах модели и оцениваете функцию стоимости для каждой выборки. Оценка модели для многих выборок может быть трудоемкой. Можно ускорить оценку в инструменте 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:
Убедитесь, что программное обеспечение может получить доступ к рабочим пула параллели, которые используют соответствующий кластерный профиль.
Для получения дополнительной информации смотрите, Конфигурируют Вашу Систему для Параллельных вычислений.
Откройте инструмент Sensitivity Analysis для модели Simulink.
Задайте набор параметра, сгенерируйте выборки параметра и задайте требования для анализа чувствительности. Например, смотрите, что Исследование Проекта Использует Выборку Параметра (графический интерфейс пользователя), и Идентифицируйте Основные параметры для Оценки (графический интерфейс пользователя).
На вкладке Sensitivity Analysis нажмите Options, чтобы открыть диалоговое окно Evaluation Options.
Выберите вкладку Parallel Options.
Установите флажок Use the parallel pool during evaluation.
Эта опция проверяет на зависимости в вашей модели Simulink. Зависимости от файла отображены в поле списка Model file dependencies и соответствующем пути к файлам в Model path dependencies. Файлы, перечисленные в Model file dependencies, копируются в удаленных рабочих.
Автоматическая проверка зависимостей не может обнаружить все зависимости в вашей модели.
Для получения дополнительной информации смотрите Зависимости моделей. В этом случае добавьте необнаруженные зависимости вручную.
Добавьте любые зависимости от файла, которые не обнаруживает автоматическая проверка.
Задайте файлы в поле списка Model file dependencies, разделенном точками с запятой или на отдельных линиях.
В качестве альтернативы нажмите Add file dependency, чтобы открыть диалоговое окно и выбрать файл, чтобы добавить.
Если вы не хотите копировать файлы в удаленных рабочих, удалите все записи в поле списка Model file dependencies. Заполните поле списка Model path dependencies путем нажатия на Sync path dependencies from model и добавьте любые необнаруженные зависимости от пути. Кроме того, в поле списка, обновите пути на локальных дисках сделать их доступными для удаленных рабочих. Например, измените C:\
к \\\\hostname\\C$\\
.
Если вы изменяете модель Simulink, повторно синхронизируете зависимости, чтобы гарантировать, что обнаруживаются любые новые зависимости. Нажмите Sync file dependencies from model во вкладке Parallel Options, чтобы повторно выполнить автоматическую проверку зависимости на вашу модель.
Это действие обновляет поле списка Model file dependencies с любой новой зависимостью от файла, найденной в модели.
Нажмите OK.
В инструменте Sensitivity Analysis нажмите Evaluate, чтобы выполнить анализ чувствительности с помощью параллельных вычислений. Конструктивные требования оценены для каждой комбинации значений параметров в вашем наборе параметра.
Оценивать модель с помощью параллельных вычислений:
Убедитесь, что программное обеспечение может получить доступ к рабочим пула параллели, которые используют соответствующий кластерный профиль.
Для получения дополнительной информации смотрите, Конфигурируют Вашу Систему для Параллельных вычислений.
Откройте модель.
Задайте функцию стоимости и сгенерируйте выборки параметра для анализа чувствительности. Например, смотрите, что Исследование Проекта Использует Выборку Параметра (Код).
Включите параллельные вычисления с помощью набора опции оценки.
opt = sdo.EvaluateOptions; opt.UseParallel = true;
Найдите зависимости моделей.
[dirs,files] = sdo.getModelDependencies(modelname)
sdo.getModelDependencies
может не обнаружить все зависимости в вашей модели. Для получения дополнительной информации смотрите Зависимости моделей. В этом случае добавьте необнаруженные зависимости вручную.
Измените files
включать любые зависимости от файла что sdo.getModelDependencies
не обнаруживает.
files = vertcat(files,'C:\matlab\work\filename.m')
Если вы не хотите копировать файлы в удаленных рабочих, добавьте любые необнаруженные зависимости от пути в dirs
и обновите пути на локальных дисках сделать их доступными для удаленных рабочих. Смотрите sdo.getModelDependencies
для получения дополнительной информации.
Добавьте зависимости от файла для оценки.
opt.ParallelFileDependencies = files;
Задайте имя модели, которая будет оценена параллельно.
opt.EvaluatedModel = modelname;
Оцените модель.
[pOpt,opt_info] = sdo.evaluate(fcn,samples,opt);
Когда вы оцениваете модель, которая не требует большого количества оценок или не занимает много времени симулировать, вы не можете видеть ускорение во время оценки. В таких случаях издержки, сопоставленные с созданием и распределением параллельных задач, перевешивают преимущества выполнения оценки параллельно.
parpool
| sdo.EvaluateOptions
| sdo.evaluate
| sdo.getModelDependencies