exponenta event banner

Многоядерное моделирование системы формирования звуковых лучей

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

Введение

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

Акустическое формирование луча

В этом примере показано формирование акустического луча с использованием однородной линейной матрицы (ULA) микрофонов. Модель моделирует прием трех аудиосигналов с разных направлений на 10-элементной равномерно разнесенной линейной микрофонной решетке. После добавления теплового шума в приемнике применяется формирование луча для различных углов источника, и результат воспроизводится на звуковом устройстве. Источник звука, который необходимо воспроизвести в аудиоплеере, можно выбрать с помощью диалогового окна из блока «Выбор источника».

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

В этом примере используется домен потока данных в Simulink для использования нескольких ядер на рабочем столе для повышения производительности моделирования. Параметр Domain подсистемы потока данных в этой модели имеет значение Dataflow. Для этого выберите подсистему, а затем выберите «Вид» > «Инспектор свойств». Домены потока данных автоматически секционируют модель и моделируют систему с использованием нескольких потоков для повышения производительности моделирования. Установив для параметра Domain значение Dataflow, можно использовать Data aflow Simulation Assistant для анализа модели с целью повышения производительности. Можно открыть ассистент моделирования потока данных, нажав кнопку «Ассистент потока данных» под параметром «Автоматический расчет размера кадра» в Инспекторе свойств.

Анализ параллелизма в подсистеме потока данных

Помощник по моделированию потока данных предлагает изменить параметры модели для обеспечения оптимальной производительности моделирования. Чтобы принять предложенные параметры модели, рядом с пунктом Предлагаемые параметры модели для производительности моделирования щелкните Принять все (Accept all). Можно также развернуть раздел, чтобы изменить настройки по отдельности. В этом примере настройки модели уже оптимальны. В ассистенте моделирования потока данных нажмите кнопку «Анализ», чтобы начать анализ области потока данных для обеспечения производительности моделирования. По завершении анализа ассистент моделирования потока данных показывает, сколько потоков подсистема потока данных будет использовать во время моделирования.

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

На следующей схеме показан ассистент моделирования потока данных, в котором подсистема потока данных в настоящее время задает нулевое значение задержки, а предложенная задержка для системы равна единице. Нажмите кнопку «Принять» рядом с пунктом «Рекомендуемая задержка» в ассистенте моделирования потока данных, чтобы использовать рекомендуемую задержку для подсистемы потока данных. Значение задержки также можно ввести непосредственно в инспекторе свойств для параметра «Задержка». Simulink показывает значение параметра задержки с помощью$Z^{-n}$ тегов на выходных портах подсистемы потока данных.

Производительность многоядерного моделирования

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

Simulation execution time for multithreaded model = 2.74s
Simulation execution time for single-threaded model = 5.66s
Actual speedup with dataflow: 2.1x

Резюме

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