Для моделей, содержащих большие иерархии ссылок на модели, можно сократить время генерации и компиляции кода путем параллельного построения ссылочных моделей. Программное обеспечение Parallel Computing Toolbox™ позволяет распределять генерацию и компиляцию кода для ссылочных моделей по параллельному пулу работников MATLAB ®. При наличии программного обеспечения MATLAB Parallel Server™ можно распределить генерацию и компиляцию кода между удаленными сотрудниками в конфигурации MATLAB Parallel Server.
Для параллельного построения ссылочных моделей:
Откройте диалоговое окно Параметры конфигурации (Configuration Parameters) для верхней модели иерархии модели.
Установите флажок Включить параллельные построения привязки модели (Enable parallel model reference builds).
Для каждого работника MATLAB можно настроить среду MATLAB, соответствующую среде MATLAB клиента. В выпадающем списке инициализации рабочего объекта MATLAB для построений выберите одно из следующих значений:
None - Simulink ® не инициализирует работников.
Copy base workspace - Simulink пытается скопировать базовую рабочую область в каждый работник MATLAB.
Load top model - Simulink загружает верхнюю модель на каждого работника MATLAB.
Создайте модель с точки зрения командной строки или Simulink Editor Code:
Командная строка -- Используйте, например, slbuild. Процесс сборки отображает сообщения журнала сборки в окне команд.
Simulink Editor Code perspective - Нажмите кнопку Build. Процесс построения отображает сообщения журнала построения в средстве просмотра диагностики.
Если выбрана настройка Параллельный расчет (Parallel Computing Toolbox) Автоматически создавать параллельный пул (Automatically create a parallel pool), автоматически запускается параллельный пул работников MATLAB. Дополнительные сведения см. в разделе Задание параметров параллельного вычисления (панель инструментов параллельного вычисления).
Если параллельный пул работников MATLAB не выполняется при построении модели, MATLAB автоматически открывает параллельный пул работников с помощью профиля кластера по умолчанию. Чтобы изменить поведение рабочего кластера по умолчанию, можно изменить свойства профиля кластера. Если вы не коснулись своих параллельных настроек, профиль по умолчанию будет local. Управление параллельным поведением с помощью настроек параллелизма, включая масштабирование до кластера, автоматическое создание пула и предпочтительное количество работников. Дополнительные сведения см. в разделах Обнаружение кластеров и использование профилей кластеров (панель инструментов параллельных вычислений).
Дополнительные общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
В окне Статус построения (Build Status) можно выполнить следующие действия.
Просмотр общего хода построения иерархии модели.
Просмотр статуса сборки отдельных моделей в иерархии моделей.
Отмена параллельного процесса построения.
Примечание
Окно Статус построения (Build Status) поддерживает только параллельное построение иерархий модели. Не используйте окно Статус сборки для последовательных построений.
Чтобы открыть окно Статус построения (Build Status), используйте одну из следующих команд строки:
coder.buildstatus.open('model')
slbuild('model', ... 'OpenBuildStatusAutomatically',true)
slbuild('model','StandaloneCoderTarget', ... 'OpenBuildStatusAutomatically',true)
В этом примере показано, как можно контролировать процесс построения иерархии модели. В иерархии, 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')
Просмотрите зависимости модели с помощью анализатора зависимостей. На вкладке «Моделирование» в правой части раздела «Проектирование» щелкните стрелку. Затем в разделе Конструкция системы (System Design) щелкните Анализатор зависимостей (Dependency Analyzer).

Запустите параллельное построение иерархии модели и откройте окно Статус построения (Build Status).
slbuild('rtwdemo_parabuild_a_1','OpenBuildStatusAutomatically',true)В окне Статус построения (Build Status) отображается общий ход построения и статус построения для моделей по мере работы генератора кода в иерархии моделей.

В этой таблице описываются значения столбцов Статус (Status).
| Статус | Описание |
|---|---|
Заблокированный | Генератору кода не удается запланировать построение модели, так как построение заблокировано зависимостями. Например, построение дочерней модели не завершено. |
Запланированный | При параллельном построении генератор кода планирует построение модели, когда построение не блокируется зависимостями. Состояние сборки модели: |
Строительство | Модель строится на работнике. |
Законченный | При построении модели без ошибок статус изменяется на |
| Ошибка | Если построение модели завершается неуспешно, статус изменяется на |
Актуальная информация | Создание кода для модели не требуется, поскольку текущий созданный код является актуальным. |
Отмена | При нажатии кнопки «Отмена построения» процесс построения изменяет статус незавершенных построений на |
Отмененный | Операция отмены завершена. |
В столбце Прошедшее время (Expapsed Time) показано время сборки моделей в иерархии. Чтобы сократить общее время сборки, проанализируйте время сборки для ссылочных моделей вместе с информацией о зависимостях модели. Затем рассмотрим, например:
Реструктуризация иерархии ссылочной модели.
Увеличение числа работников в параллельном пуле.
coder.buildstatus.close | coder.buildstatus.open | slbuild