Уменьшите время сборки для ссылок на Модели при помощи Parallel Builds

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

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

Чтобы создать модели-ссылки параллельно:

  1. Откройте диалоговое окно Параметры конфигурации для верхней модели иерархии модели.

  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 Editor Code:

    • Командная строка -- Используйте, например, slbuild. Процесс сборки отображает сообщения журнала сборки в Командном окне.

    • Simulink Editor Code перспектива - Нажмите кнопку Build. Процесс сборки отображает сообщения журнала сборки в Diagnostic Viewer.

      Если выбрана Automatically create a parallel pool выборов Parallel Computing Toolbox, автоматически запускается параллельный пул работников MATLAB. Для получения дополнительной информации см. Раздел «Настройка параллельных настроек» (Parallel Computing Toolbox).

      Если параллельный пул работников MATLAB не запускается, когда вы создаете модель, MATLAB автоматически открывает параллельный пул работников с помощью профиля кластера по умолчанию. Чтобы изменить поведение кластера рабочих процессов по умолчанию, можно изменить свойства профиля кластера. Если вы не коснулись своих параллельных настроек, профиль по умолчанию local. Управление параллельным поведением с параллельными настройками, включая масштабирование до кластера, автоматическое создание пулов и предпочтительное количество работников. Для получения дополнительной информации смотрите Обнаружение кластеров и Использование профилей кластеров (Parallel Computing Toolbox).

      Для получения дополнительной общей информации о параллельных вычислениях смотрите Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).

Мониторинг параллельного создания ссылочных моделей

В окне Build Status можно:

  • Просмотрите общий прогресс сборки для иерархии модели.

  • Просмотрите статус сборки отдельных моделей в иерархии модели.

  • Отмените параллельный процесс сборки.

Примечание

Окно Build Status поддерживает только параллельное создание иерархий модели. Не используйте окно Build Status для последовательных сборок.

Чтобы открыть окно Build Status, используйте одну из следующих линий команд:

  • coder.buildstatus.open (' model')

  • slbuild ('model', ... 'OpenBuildStatusAutomatical', true)

  • slbuild ('model',' StandaloneCoderTarget ',... 'OpenBuildStatusAutomatical', true)

В этом примере показано, как можно контролировать процесс сборки для иерархии модели. В иерархии 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.

    slbuild('rtwdemo_parabuild_a_1','OpenBuildStatusAutomatically',true)

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

В этой таблице описываются Status значения столбцов.

СтатусОписание

Заблокированный

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

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

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

Создание

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

Законченный

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

Ошибка

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

Актуальные данные

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

Отмена

При нажатии кнопки Cancel Build процесс сборки изменяет статус неполных построений на Canceling.

Отмененный

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

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

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

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

См. также

| |

Похожие темы