Этот пример сравнивает демодуляция трудного решения и LLR. Это использует область потока данных в Simulink®, чтобы автоматически разделить управляемые данными фрагменты системы связи в несколько потоков и таким образом улучшания производительности симуляции путем выполнения его на нескольких ядрах рабочего стола.
Область выполнения потока данных позволяет вам использовать несколько ядер в симуляции в вычислительном отношении интенсивных систем. В этом примере показано, как поток данных как область выполнения подсистемы улучшает производительность симуляции модели. Чтобы узнать больше о потоке данных и как запустить модели Simulink с помощью нескольких потоков, смотрите, что Многожильное Выполнение использует Область Потока данных.
Этот пример показывает систему связи, которая сравнивает эффективность BER при использовании LLR вместо демодуляции трудного решения в декодере. Этот пример имеет один передатчик, канал AWGN и три приемника. Эти три приемника используют различные методы декодирования, чтобы сравнить BER каждого подхода. Расчет частоты ошибок по битам показывают в блоках Отображения для сравнения эффективности этих трех приемников.
Этот пример использует область потока данных в Simulink, чтобы использовать несколько ядер на вашем рабочем столе, чтобы улучшать производительность симуляции. Доменный параметр Подсистемы Потока данных в этой модели устанавливается как Поток данных. Можно просмотреть это путем выбора подсистемы и затем выбора View> Property Inspector. Области потока данных автоматически делят вашу модель и симулируют систему с помощью нескольких потоков для лучшей эффективности симуляции. Если вы устанавливаете Доменный параметр на Поток данных, можно использовать Ассистент Симуляции Потока данных, чтобы анализировать модель, чтобы получить лучшую эффективность. Можно открыть Ассистент Симуляции Потока данных путем нажатия на ассистент Потока данных кнопка ниже Автоматического параметра вычисления формата кадра в Property Inspector.
Ассистент Симуляции Потока данных предлагает изменить настройки модели для оптимальной эффективности симуляции. Чтобы принять предложенные настройки модели, рядом с настройками модели Suggested для эффективности симуляции, нажмите кнопку Принять все. В качестве альтернативы можно расширить раздел, чтобы изменить настройки индивидуально. В этом примере настройки модели уже оптимальны. В Ассистенте Симуляции Потока данных нажмите кнопку Analyze, чтобы запустить анализ области потока данных для эффективности симуляции. Если анализ закончен, Ассистент Симуляции Потока данных показывает, сколько потоков подсистема потока данных будет использовать в процессе моделирования.
После анализа модели ассистент показывает три потока, потому что три различных типа приемника могут запуститься независимо параллельно. Когда используемая Задержка является нулем, поток данных может только использовать этот свойственный параллелизм в модели. Эти три приемника информационно-зависимы на одном передатчике. Это вызывает узкое место, поскольку передатчик должен завершить свою обработку, прежде чем любые приемники начнут обрабатывать. Без конвейерных задержек только свойственный параллелизм в модели может быть использован, чтобы запустить Подсистему Потока данных с помощью нескольких потоков. Путем конвейеризации информационно-зависимых блоков Подсистема Потока данных может увеличить параллелизм для более высокой пропускной способности. Ассистент Симуляции потока данных показывает рекомендуемое количество конвейерных задержек как Предложенная Задержка. Предложенное значение задержки вычисляется, чтобы дать лучшую эффективность.
Следующая схема показывает Ассистенту Симуляции Потока данных, где Подсистема Потока данных в настоящее время задает значение задержки нуля, и предложенная задержка для системы равняется двум. Используя Предложенную Задержку значение вводит конвейерные задержки модели и позволяет большему количеству блоков запуститься параллельно.
Нажмите кнопку Accept рядом с Предложенной Задержкой в Ассистенте Симуляции Потока данных, чтобы использовать рекомендуемую задержку для Подсистемы Потока данных.
Ассистент Симуляции потока данных теперь показывает количество потоков как пять допущений, что блоки в подсистеме потока данных симулируют в параллели с помощью пяти потоков. Использование двух конвейерных задержек увеличило число блоков, которые могут быть запущены в параллели в Подсистеме Потока данных. Значение задержки может также быть введено непосредственно в Property Inspector для параметра "Задержки". Simulink показывает значение параметров задержки с помощью тегов в выходных портах подсистемы потока данных.
Мы измеряем повышение производительности использования нескольких ядер путем сравнения времени выполнения, потраченного для под управлением модели с помощью нескольких потоков со временем, потраченным, когда модель не использует поток данных. Время выполнения измеряется с помощью sim команды, которая возвращает время выполнения симуляции модели. Эти числа и анализ были опубликованы на рабочем компьютере Windows с Intel® Xeon® CPU W-2133 3.6 процессора GHz 6 Cores 12 Threads.
Simulation execution time for multithreaded model = 4.37s Simulation execution time for single-threaded model = 10.64s Actual speedup with dataflow: 2.4x
В этом примере показано, как область выполнения потока данных может улучшать производительность в модели системы связи, использующей несколько ядер на рабочем столе.