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