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

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

Введение

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

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

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

Настройка подсистемы 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 во время симуляции.

После анализа модели ассистент показывает три потока. Это связано с тем, что три блока формирования луча являются вычислительно интенсивными и могут работать параллельно. Однако три блока beamformer зависят от блоков Microphone Array и Receiver. Задержки трубопровода могут использоваться, чтобы прервать эту зависимость и увеличить параллелизм. Ассистент симуляции Dataflow показывает рекомендуемое количество задержек трубопровода как предполагаемую задержку. Предлагаемое значение задержки вычисляется, чтобы обеспечить лучшую эффективность.

Следующая схема показывает Dataflow Симуляции Assistant, где Подсистема Dataflow в настоящее время задает значение задержки нуля, и предлагаемая задержка для системы равна единице. Чтобы использовать рекомендуемую задержку для подсистемы 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 = 2.74s
Simulation execution time for single-threaded model = 5.66s
Actual speedup with dataflow: 2.1x

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

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