Когда подсистема в модели сконфигурирована, чтобы использовать область выполнения потока данных, вкладка Multicore активируется на Simulink® панель инструментов. Эта вкладка консолидирует многожильные аналитические методы, усиленные в потоке данных в инкрементный и итеративный рабочий процесс.
Используя средства управления на вкладке Multicore, вы можете:
Оцените относительную стоимость блоков с помощью внутренней эвристики Simulink.
Измерьте средние времена выполнения (стоимость) блоков в подсистемах потока данных путем симуляции модели с программным обеспечением в цикле (SIL) или процессор в цикле (PIL) профилирование. Эта функциональность требует Embedded Coder® лицензия.
Вручную замените величину затрат блока.
Обеспечьте аналитические ограничения, такие как максимальное количество порога поточной обработки и потоков.
Запустите анализ, чтобы сгенерировать выделение блока к потокам и визуализировать результаты анализа.
Этот график иллюстрирует шаги многожильного анализа. После того, как вы зададите область выполнения потока данных для подсистем в вашей модели, можно выбрать метод расчета стоимости, затраты блока перезаписи, задать аналитические ограничения, анализ запуска, и рассмотреть результаты.
На вкладке Multicore, в разделе Mode, можно выбрать метод расчета стоимости как Cost Estimation или SIL/PIL Profiling. В обоих режимах стоимость отдельных блоков будет автоматически определяться и использоваться в многожильном анализе для равного распределения вычислительной загрузки через несколько ядер процессора.
Используйте Cost Estimation для:
Быстрый анализ, не запуская симуляцию или генерируя код.
Предварительный анализ, когда модель не полностью реализована. В этом случае можно изменить результаты оценки совпадать с ожидаемой величиной затрат для итоговой реализации.
Когда вы нажимаете Estimate Cost, Редактор Стоимости отображает предполагаемую стоимость выполнения каждого блока в вашей модели, не симулируя его.
Используйте программное обеспечение в цикле (SIL), или процессор в цикле (PIL) профильный метод (требует лицензии Embedded Coder) к:
Получите точную величину затрат, измеренную на хосте - компьютере с помощью сгенерированного кода. Сгенерированный код является самым близким к коду, который будет развернут на оборудовании.
Измерьте величину затрат на фактическом целевом компьютере для того, чтобы максимизировать использование ядер, когда итоговый код развертывается.
SIL/PIL профильные средние времена выполнения мер (стоимость) блоков в подсистемах потока данных путем симуляции модели с SIL/PIL.
Используйте Settings, чтобы сконфигурировать генерацию кода C/C++ и настройки аппаратной реализации.
Используйте Stop Time, чтобы задать время, чтобы измерить стоимость.
Используйте список, чтобы выбрать Software-in-the-Loop (SIL)
orProcessor-in-the-Loop (PIL)
установка.
Используйте Profile, чтобы измерить затраты, сопоставленные с блоками с заданными настройками.
Этот пример показывает подсвеченный блок в модели и ее стоимости. Заметьте, что Редактор Стоимости отображает модули профилируемой величины затрат, когда вы выполняете профилирование SIL/PIL.
Можно вручную изменить величину затрат блока, чтобы изучить их удар на многожильное поведение. Чтобы заменить затраты блока, очистите столбец Auto для соответствующего блока и отредактируйте значение в столбце Cost.
Перезапись значений затрат блока позволяет вам выполнять анализ для пользовательских затрат.
Затем установите ограничения и запустите многожильный анализ. В разделе Analyze:
Используйте Maximum Number of Threads, чтобы задать максимальное количество потоков, произведенных анализом. По умолчанию инструмент автоматически пытается определить количество ядер целевого процессора от аппаратных настроек и использования что как максимальное количество потоков. Если инструмент будет не мочь определить точное значение, он будет использовать количество ядер на серверной платформе как максимальное количество потоков.
Задайте Multithreading Threshold, чтобы установить минимум для общей стоимости (в микросекундах) подсистемы, для которой инструмент применяет многопоточность. Если общая стоимость упадет ниже порога, инструмент не разделит подсистему. По умолчанию инструмент использует номинальную стоимость, 25 микро - секунды, как порог.
Нажмите Run Analysis, чтобы выполнить анализ на основе вашей настройки.
Используйте инструменты, обеспеченные в разделе Review Results, чтобы визуализировать и изучить многожильное поведение вашей модели.
Выберите Highlight threads, чтобы подсветить и визуализировать потоки и присвоение блоков к потокам на основе величины затрат выполнения блока.
Выберите Thread Viewer, чтобы визуализировать выделение блоков к потокам.
Анализируйте раздел Suggestions for Increasing Concurrency, чтобы видеть, предлагаются ли там задержки для конвейеризации задержек. Путем конвейеризации информационно-зависимых блоков блок Subsystem Потока данных может увеличить параллелизм для более высокой пропускной способности. Для получения дополнительной информации о конвейеризации задержек, смотрите Многожильную Симуляцию и Генерацию кода Областей Потока данных.
После принятия предложенных задержек для конвейеризации задерживаются, можно использовать Show pipeline delays, чтобы визуализировать задержки модели.
Используйте аналитический отчет исследовать относительный вес подсистем потока данных и максимального теоретического ускорения для целой модели. Это ускорение может быть достигнуто в результате разделения, выполняемого во время анализа. Сумма ускорения пропорциональна относительному весу подсистем потока данных относительно целой модели.
Аналитический отчет отображает общую стоимость и количество значений потоков для каждого блока Dataflow Subsystem.
Ускорение вычисляется с помощью этой формулы, где n
общее количество блоков Dataflow Subsystem, pctPar
процент параллельного выполнения подсистемы и criticalPathCost
стоимость самого дорогостоящего потока в подсистеме.