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

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

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

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

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

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

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

    • 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.

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

Блокированный

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

Запланированный

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

Создание

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

Завершенный

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

Ошибка

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

Актуальный

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

Отмена

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

Отмененный

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

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

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

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

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

| | |

Похожие темы