Этот пример показывает, как аудио beamforming модель системной симуляции в Simulink® может иметь улучшенную производительность с помощью области потока данных. Это использует область потока данных в Simulink®, чтобы автоматически разделить управляемые данными фрагменты системы связи в несколько потоков и таким образом улучшания производительности симуляции путем выполнения его на нескольких ядрах рабочего стола.
Область выполнения потока данных позволяет вам использовать несколько ядер в симуляции в вычислительном отношении интенсивных систем. Этот пример показывает, как поток данных как область выполнения подсистемы улучшает производительность симуляции модели. Чтобы узнать больше о потоке данных и как запустить модели Simulink с помощью нескольких потоков, смотрите, что Многожильное Выполнение использует Область Потока данных (DSP System Toolbox).
Этот пример показывает акустическому beamforming использование универсальной линейной матрицы (ULA) микрофонов. Модель моделирует прием трех звуковых сигналов от различных направлений на однородно расположенном с интервалами линейном массиве микрофона с 10 элементами. После сложения тепловых помех в получателе beamforming применяется для углов другого источника, и результат проигрывается на звуковом устройстве. Источник аудиосигналов, который должен проигрываться в аудиоплеере, может быть выбран с помощью диалогового окна из Избранного Исходного блока.
Этот пример использует область потока данных в Simulink, чтобы использовать несколько ядер на вашем рабочем столе, чтобы улучшать производительность симуляции. Доменный параметр Подсистемы Потока данных в этой модели устанавливается как Поток данных. Можно просмотреть это путем выбора подсистемы и затем выбора View> Property Inspector. Области потока данных автоматически делят вашу модель и моделируют систему с помощью нескольких потоков для лучшей производительности симуляции. Если вы устанавливаете Доменный параметр на Поток данных, можно использовать Ассистент Симуляции Потока данных, чтобы анализировать модель, чтобы получить лучшую производительность. Можно открыть Ассистент Симуляции Потока данных путем нажатия на ассистент Потока данных кнопка ниже Автоматического параметра вычисления формата кадра в Property Inspector.
В Ассистенте Симуляции Потока данных нажмите кнопку Analyze, чтобы запустить анализ области потока данных для производительности симуляции. Если анализ закончен, Ассистент Симуляции Потока данных показывает, сколько потоков подсистема потока данных будет использовать во время симуляции.
После анализа модели ассистент показывает три потока. Это вызвано тем, что три блока формирователя луча в вычислительном отношении интенсивны и могут запуститься параллельно. Три блока формирователя луча однако, зависьте от Массива Микрофона и блоков Получателя. Конвейерные задержки могут использоваться, чтобы повредить эту зависимость и параллелизм увеличения. Ассистент Симуляции Потока данных показывает рекомендуемое количество конвейерных задержек как Предложенная Задержка. Предложенное значение задержки вычисляется, чтобы дать лучшую производительность.
Следующая схема показывает Ассистенту Симуляции Потока данных, где Подсистема Потока данных в настоящее время задает значение задержки нуля, и предложенная задержка для системы является той. Нажмите кнопку Accept рядом с Предложенной Задержкой в Ассистенте Симуляции Потока данных, чтобы использовать рекомендуемую задержку для Подсистемы Потока данных. Значение задержки может также быть введено непосредственно в Property Inspector для параметра "Задержки". Simulink показывает значение параметров задержки с помощью тегов в выходных портах подсистемы потока данных.
Мы измеряем повышение производительности использования области потока данных путем сравнения времени выполнения, потраченного для под управлением модели с и не используя поток данных. Время выполнения измеряется с помощью sim команды, которая возвращает время выполнения симуляции модели. Эти числа и анализ были опубликованы на рабочем компьютере Windows с Intel® Xeon® CPU E5-1650 v3 3.5 процессора GHz 6 Cores 12 Threads.
Simulation execution time for multithreaded model = 2.85s Simulation execution time for single-threaded model = 4.81s Actual speedup with dataflow: 1.7x
Этот пример показывает, как многопоточность с помощью области потока данных может улучшать производительность в моностатической имитационной модели радиолокационной системы с помощью нескольких ядер на рабочем столе.