Многоядерная симуляция тестовых сигналов для радиолокационного приемника

Этот пример моделирует моностатическую радиолокационную систему. Он использует область dataflow в Simulink ®, чтобы автоматически разделить управляемые данными фрагменты радиолокационной системы на несколько потоков и тем самым улучшить эффективность симуляции, выполнив ее на нескольких ядрах вашего рабочего стола.

Введение

Область выполнения dataflow позволяет вам использовать несколько ядер в симуляции вычислительно интенсивных систем. Этот пример показывает, как dataflow как область выполнения подсистемы улучшает эффективность симуляции модели. Чтобы узнать больше о dataflow и о том, как запустить модели Simulink с использованием нескольких потоков, смотрите Многоядерное Выполнение с использованием Область.

Моностатический радар с одной целью

В этом примере моделируется простой сквозной моностатический радар. Прямоугольные импульсы усиливаются блоком передатчика, затем распространяются на цель и от нее в свободном пространстве. Шум и усиление затем прикладываются в блоке предварительной подготовки приемника к возврату сигналу, за которым следует согласованный фильтр. Потери области значений компенсируются, и импульсы некогерентно интегрированы.

Настройка подсистемы Dataflow

Этот пример использует область dataflow в Simulink, чтобы использовать несколько ядер на рабочем столе для повышения эффективности симуляции. Параметр Domain Подсистемы Dataflow в этой модели задан как Dataflow. Вы можете просмотреть это, выбрав подсистему и затем выбрав View > Property Inspector. Области Dataflow автоматически разделяют вашу модель и моделируют систему с помощью нескольких потоков для повышения эффективности симуляции. Если вы установите параметр Domain на Dataflow, можно использовать Dataflow Simulation Assistant, чтобы проанализировать модель, чтобы получить лучшую эффективность. Можно открыть Dataflow Simulation Assistant, нажав на кнопку Dataflow Assistant под параметром Автоматическое вычисление формата кадра в Property Inspector.

Анализ параллелизма в подсистеме Dataflow

Помощник по симуляции Dataflow предлагает изменение настроек модели для оптимальной эффективности симуляции. Чтобы принять предложенные настройки модели, рядом с параметрами Предлагаемой модели для эффективности симуляции, нажмите Принять все. Также можно развернуть раздел, чтобы изменить настройки по отдельности. В этом примере настройки модели уже оптимальны. В Dataflow Simulation Assistant нажмите кнопку Analyze, чтобы начать анализ области dataflow для эффективности симуляции. После завершения анализа помощник по симуляции Dataflow показывает, сколько потоков будет использовать подсистема dataflow во время симуляции.

После анализа модели помощник показывает один поток, потому что зависимость данных между блоками в модели препятствует одновременному выполнению блоков. Путем конвейеризации блоков, зависящих от данных, Подсистема Dataflow может увеличить параллелизм для повышения пропускной способности данных. Помощник по симуляции Dataflow показывает рекомендуемое количество задержек трубопровода как предполагаемую задержку. Предлагаемое значение задержки вычисляется, чтобы обеспечить лучшую эффективность.

Следующая схема показывает Dataflow Симуляции Assistant, где Подсистема Dataflow в настоящее время задает значение задержки нуля, и предлагаемая задержка для системы равна четырем.

Чтобы использовать рекомендуемую задержку для подсистемы Dataflow, нажмите кнопку «Принять» рядом с полем «Предлагаемая задержка» в ассистенте симуляции Dataflow.

Dataflow Simulation Assistant теперь показывает количество потоков как четыре, что означает, что блоки внутри подсистемы dataflow моделируются параллельно с использованием четырех потоков. Использование четырех задержек трубопровода увеличило количество блоков, которые могут запускаться параллельно в Подсистеме Dataflow. Значение задержки также может быть введено непосредственно в Property Inspector для параметра «Latency». Simulink показывает значение параметров задержки, используя$Z^{-n}$ теги в выходных портах подсистемы dataflow.

Многоядерная Эффективность симуляции

Мы измеряем улучшение эффективности использования области dataflow, сравнивая время выполнения, затраченное на выполнение модели с и без использования dataflow. Время выполнения измеряется с помощью команды sim, которая возвращает время выполнения симуляции модели. Эти цифры и анализ были опубликованы на рабочем компьютере Windows с процессором Intel ® Xeon ® CPU W-2133 @ 3,6 ГГц 6 ядер 12 потоков.

Simulation execution time for multithreaded model = 41.33s
Simulation execution time for single-threaded model = 34.82s
Actual speedup with dataflow: 0.8x

Сводные данные

Этот пример показывает, как область выполнения dataflow может улучшить эффективность в симуляции радиолокационной системы с помощью нескольких ядер на рабочем столе.