Для моделей, которые содержат иерархии ссылки большой модели, можно уменьшать генерацию кода и время компиляции путем создавания моделей, на которые ссылаются, параллельно. С программным обеспечением Parallel Computing Toolbox™ можно распределить генерацию кода и компиляцию для моделей, на которые ссылаются, через параллельный пул рабочих MATLAB®. Если у вас также есть программное обеспечение MATLAB Parallel Server™, можно распределить генерацию кода и компиляцию через удаленных рабочих в настройке MATLAB Parallel Server.
Создавать модели, на которые ссылаются, параллельно:
Откройте диалоговое окно Configuration Parameters для топ-модели иерархии модели.
Установите флажок Enable parallel model reference builds (Simulink).
Для каждого работника MATLAB можно настроить среду MATLAB, которая сопоставима со средой MATLAB клиента. От MATLAB worker initialization for builds (Simulink) выпадающий список выберите одно из этих значений:
None
– Simulink® не инициализирует рабочих.
Copy base workspace
– Simulink пытается скопировать базовое рабочее пространство в каждого работника MATLAB.
Load top model
– Simulink загружает топ-модель на каждого работника MATLAB.
Создайте свою модель из командной строки или Редактор Simulink перспектива Кода:
Командная строка – Использование, например, rtwbuild
или slbuild
. Процесс сборки отображает логарифмические сообщения сборки в Командном окне.
Редактор Simulink перспектива Кода – Нажимает кнопку Build. Процесс сборки отображает логарифмические сообщения сборки в Диагностическом Средстве просмотра.
Если параллельный пул работников MATLAB не запускается, когда вы создаете свою модель, MATLAB автоматически открывает параллельный пул рабочих, использующих кластерный профиль по умолчанию. Чтобы изменить поведение по умолчанию кластера рабочего, можно изменить свойства кластерного профиля. Если вы не коснулись своих параллельных настроек, профилем по умолчанию является local
. Управляйте параллельным поведением с параллельными настройками, включая увеличение масштаба к кластеру, автоматическое создание пула и предпочтенное количество рабочих. Для получения дополнительной информации смотрите, Обнаруживают Кластеры и Профили Кластера Использования (Parallel Computing Toolbox).
Для более общей информации о параллельных вычислениях смотрите функции MATLAB Запуска с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
Через окно Build Status вы можете:
Просмотрите полный прогресс сборки для иерархии модели.
Просмотрите состояние сборки отдельных моделей в иерархии модели.
Отмените параллельный процесс сборки.
Окно Build Status поддерживает только параллельное создание иерархий модели. Не используйте окно Build Status в последовательных сборках.
Чтобы открыть окно Build Status, используйте одну из этих команд линии:
coder.buildstatus.open ('
model
')
rtwbuild ('
model
'... 'OpenBuildStatusAutomatically', верный)
slbuild ('
model
', 'StandaloneCoderTarget'... 'OpenBuildStatusAutomatically', верный)
В этом примере показано, как можно контролировать процесс сборки для иерархии модели. В иерархии, rtwdemo_parabuild_a_1
ссылки rtwdemo_parabuild_b_1
, rtwdemo_parabuild_b_2
, и rtwdemo_parabuild_b_3
.
Скопируйте файлы модели в локальную папку.
src_dir = ... fullfile(matlabroot,'toolbox','rtw','rtwdemos'); if exist(fullfile('.','myTempFolder'),'dir') rmdir('myTempFolder','s') end mkdir myTempFolder copyfile(fullfile(src_dir,'rtwdemo_parabuild_a_1.slx'), ... 'myTempFolder'); copyfile(fullfile(src_dir,'rtwdemo_parabuild_b_1.slx'), ... 'myTempFolder'); copyfile(fullfile(src_dir,'rtwdemo_parabuild_b_2.slx'), ... 'myTempFolder'); copyfile(fullfile(src_dir,'rtwdemo_parabuild_b_3.slx'), ... 'myTempFolder'); cd myTempFolder
Откройте топ-модель.
open_system('rtwdemo_parabuild_a_1')
Просмотрите зависимости моделей с Зависимостью Анализатор. На вкладке Modeling, на ультраправом из раздела Design, кликают по стреле. Затем под System Design нажмите Dependency Analyzer.
Запустите параллельное создание иерархии модели и откройте окно Build Status.
rtwbuild('rtwdemo_parabuild_a_1','OpenBuildStatusAutomatically',true)
Окно Build Status отображает полный прогресс сборки и состояние сборки для моделей, когда генератор кода работает через иерархию модели.
Эта таблица объясняет значения столбцов Status.
Состояние | Описание |
---|---|
| Генератор кода не может запланировать сборку модели, потому что сборка блокируется зависимостями. Например, дочерняя сборка модели не завершена. |
| В параллельном создании генератор кода планирует сборку модели, когда сборка не будет блокирована зависимостями. Состоянием сборки модели является |
| Модель основывается на рабочем. |
| Когда модель создана без ошибок, изменений состояния в |
Error | Если сборка модели перестала работать, изменения состояния в |
| Генерация кода не требуется для модели, потому что текущий сгенерированный код актуален. |
| Когда вы нажимаете кнопку Cancel Build, процесс сборки изменяет состояние неполных сборок к |
| Операция отмены завершена. |
Столбец Elapsed Time показывает время изготовления для моделей в иерархии. Чтобы уменьшать общее время изготовления, проанализируйте время изготовления для моделей, на которые ссылаются, вместе с информацией о зависимости моделей. Затем рассмотрите, например:
Реструктуризация иерархии модели, на которую ссылаются.
Увеличение числа рабочих в параллельном пуле.
coder.buildstatus.close
| coder.buildstatus.open
| rtwbuild
| slbuild