Уменьшайте время изготовления для моделей, на которые ссылаются, при помощи параллельных сборок

Для моделей, которые содержат иерархии ссылки большой модели, можно уменьшать генерацию кода и время компиляции путем создавания моделей, на которые ссылаются, параллельно. С программным обеспечением Parallel Computing Toolbox™ можно распределить генерацию кода и компиляцию для моделей, на которые ссылаются, через параллельный пул рабочих MATLAB®. Если у вас также есть программное обеспечение MATLAB Parallel Server™, можно распределить генерацию кода и компиляцию через удаленных рабочих в настройке MATLAB Parallel Server.

Создайте модели, на которые ссылаются, параллельно

Создавать модели, на которые ссылаются, параллельно:

  1. Откройте диалоговое окно Configuration Parameters для топ-модели иерархии модели.

  2. Установите флажок Enable parallel model reference builds (Simulink).

  3. Для каждого работника MATLAB можно настроить среду MATLAB, которая сопоставима со средой MATLAB клиента. От MATLAB worker initialization for builds (Simulink) выпадающий список выберите одно из этих значений:

    • None – Simulink® не инициализирует рабочих.

    • Copy base workspace – Simulink пытается скопировать базовое рабочее пространство в каждого работника MATLAB.

    • Load top model – Simulink загружает топ-модель на каждого работника MATLAB.

  4. Создайте свою модель из командной строки или Редактор 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.

  1. Скопируйте файлы модели в локальную папку.

    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

  2. Откройте топ-модель.

    open_system('rtwdemo_parabuild_a_1')

  3. Просмотрите зависимости моделей с Зависимостью Анализатор. На вкладке Modeling, на ультраправом из раздела Design, кликают по стреле. Затем под System Design нажмите Dependency Analyzer.

  4. Запустите параллельное создание иерархии модели и откройте окно Build Status.

    rtwbuild('rtwdemo_parabuild_a_1','OpenBuildStatusAutomatically',true)

    Окно Build Status отображает полный прогресс сборки и состояние сборки для моделей, когда генератор кода работает через иерархию модели.

Эта таблица объясняет значения столбцов Status.

СостояниеОписание

Blocked

Генератор кода не может запланировать сборку модели, потому что сборка блокируется зависимостями. Например, дочерняя сборка модели не завершена.

Scheduled

В параллельном создании генератор кода планирует сборку модели, когда сборка не будет блокирована зависимостями. Состоянием сборки модели является Scheduled пока параллельный рабочий пула не становится доступным.

Building

Модель основывается на рабочем.

Completed

Когда модель создана без ошибок, изменений состояния в Completed.

Error

Если сборка модели перестала работать, изменения состояния в Error.

Up To Date

Генерация кода не требуется для модели, потому что текущий сгенерированный код актуален.

Canceling

Когда вы нажимаете кнопку Cancel Build, процесс сборки изменяет состояние неполных сборок к Canceling.

Canceled

Операция отмены завершена.

Столбец Elapsed Time показывает время изготовления для моделей в иерархии. Чтобы уменьшать общее время изготовления, проанализируйте время изготовления для моделей, на которые ссылаются, вместе с информацией о зависимости моделей. Затем рассмотрите, например:

  • Реструктуризация иерархии модели, на которую ссылаются.

  • Увеличение числа рабочих в параллельном пуле.

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

| | |

Похожие темы