MathWorks信号处理系统设计往往涉及复杂的算法或者数据密集型应用,因此通常具有较高的计算复杂度。构建和仿真这些复杂系统可能相当耗时。Simulink 中的数据流执行域功能是减少模型仿真时间的方法之一。该功能可以对 Simulink 模型自动分区,然后使用主机上闲置的 CPU 内核并行执行各分区,从而加速仿真。本文说明如何通过三个简单步骤来设置数据流。然后,我们用无线电模型作为示例来演示数据流的实际运用,并比较启用和未启用数据流的模型仿真时间。此示例中使用的模型可以直接点击文末“阅读原文”下载。
数据流使用的并行机制类型
为进行模型分区和并行执行,数据流会采用以下数据和任务并行机制组合之一(图 1):
显式并行机制通过不同算法处理不同数据集。
展开并行机制通过同一算法处理一个数据流的连续帧。
管道并行机制通过不同算法处理同一数据的不同部分。
设置数据流
要在 Simulink 模型中启用数据流执行域,首先要实现子系统。实现方式取决于您的具体设计进度。如果您的设计刚刚开始,请使用 DSP System Toolbox 中的 Dataflow Subsystem 模块(图 2)。该模块经过预配置,可以直接使用。您只需将它拖到 Simulink 模型中,然后在其中填充算法组件。 如果您的设计模型已构建完毕,请将表示要并行化的算法的模块放在子系统中,并按如下方式设置数据流:
选择您刚刚创建的子系统。
在属性检查器的“执行”选项卡下,勾选设置执行域复选框。
将域选项设置为数据流。
在子系统内部,左下角的 》 图标表示子系统设置为数据流执行域。数据流执行域首先通过在单线程上运行模型来分析模型,然后自动进行子系统分区以用于多线程执行。
数据流的实际运用
该示例模型对无线电发射机和接收机进行仿真。它包含数字上变频器和下变频器来调整信号频率,并实现调制器和解调器(图 3)。输入是以 8 kHz 采样的录制语音。输出是两个频谱分析仪和一个音频接收端。
首先,我们测量在不启用数据流的情况下仿真该模型所需的时间1。我们可以注释掉输出模块,以便专注于仿真算法,而不受运行示波器和音频输出所需的固定时长的限制。(1. 所有仿真都在 Windows 桌面计算机上运行,该计算机采用 Intel Xeon CPU W-2133 @ 3.6 GHz 6 核 12 线程处理器。)我们使用 tic-toc 命令测量仿真时间:
modelname = ‘mono_radiomodel’;
tic;
simData = sim(modelname);
t = toc
运行该模型的执行时间为 3.67 秒。现在我们引入数据流。我们将表示算法的模块放入子系统中,并将域设置为数据流(图 4)。
助手建议的更改之一是添加延迟。当数据流发现并行机制可能增大吞吐量时,通常会向模型添加延迟。沿信号线添加的延迟用 z-n 标签表示。我们接受更改,并将启用了数据流的模型保存为 mono_radiomodel_dataflow。然后,我们使用与之前相同的 tic-toc 命令来测量新子系统的执行时间。
modelname = ‘mono_radiomodel_dataflow’;
tic;
simData2 = sim(modelname);
t_Dataflow = toc
启用数据流后的执行时间为 2.5 秒,比正常的单线程执行速度快 1.7 倍。加速得益于编译器优化、模型设置更改和数据流添加的延迟。然而,该模型仅在单线程上执行,加速并不显著。这是因为大部分计算负载都集中在上下变频器模块中。当计算负载分散在整个模型中时,数据流效果最佳,因为这为创建并行线程提供了更多机会。在下一节中,我们将扩展模型,展示数据流的实现如何进一步提高仿真性能。
处理大型模型
我们通过引入多通道音频输入信号来增大模型的计算复杂度。这会使需要处理的数据量倍增,也为数据流提供了更多优化仿真性能的机会。图 6 显示经过修改、采用立体声音频输入的模型,运行时间为 18.6 秒。通过启用信号维度信息叠加,我们可以看到信号输入确实有两个音频通道。
在启用数据流并重新运行模型后,我们观察到模型在 5 个并发线程上运行,执行时间为 4.5 秒,几乎实现了 4 倍加速(图 7)。
使用数据流的多线程代码生成数据流支持使用 Simulink Coder 和 Embedded Coder 的单核和多核 C/C++ 代码生成。首先在 Simulink 模型的“求解器”窗格中启用允许任务在目标上并发执行参数,然后使用 Ctrl + B 生成代码。为桌面目标生成的代码通过 OpenMP 实现多线程化。为 Embedded Coder 目标生成的代码通过 POSIX 实现多线程化。图 8 显示基于以上无线电模型生成的 OpenMP C 代码,包括由数据流创建的并发任务。
数据流的限制
虽然数据流有助于加速大多数仿真,但它对有些模型可能并不适用,例如较小的模型、不太复杂的模型,或者计算负载集中在少数几个模块中的模型。在这些情况下,数据流实现的速度提升不会抵消在并行线程上同步和执行模型所需的开销。如无线电模型示例所示,当计算负载在模型中均匀分布时,数据流效果最佳,因为均匀分布的负载意味着有更多机会进行模型分区和并行执行。就建模限制而言,从版本 2020b 开始,数据流不支持连续模块、可变大小信号或虚拟 Simulink 总线的多线程仿真。
小结
通过数据流执行域,您可以在 Simulink 模型中识别可以分布到多个线程中并行执行的建模模式。这种方法可利用主机 CPU 上闲置的处理能力,优化吞吐量,并减少模型仿真时间。数据流执行域最适合计算负载分散在整个模型中的情形(此时可引入并行机制),并且只能处理离散信号。
责任编辑:haq
相关推荐
现在直接集成到NI-DAQmx驱动程序中,能够以最简单、最快速的方式将数据流式传输到磁盘,速率可高达1.2GB/s。NI-DAQmx 9.0或更高版本安装了一个新的VI,即DAQmxConfigure
发表于 06-10 21:08
本田数据流分析手册
发表于 06-15 11:00
丰田数据流分析[此贴子已经被作者于2008-6-15 12:00:37编辑过]
发表于 06-15 11:03
奇瑞数据流分析手册
发表于 06-15 12:02
日产汽车数据流分析
发表于 06-15 12:10
;nbsp;1.8L宝来 1.6L、1.8L、1.8T捷达王帕萨特1.8T桑塔纳2000GSIGOLF 1.6L别克系列数据列流表别克君威2.5
发表于 06-15 12:28
汽车数据流分析
发表于 06-15 13:10
USB数据流模型 本章介绍了数据如何在USB中传送,将涉及到系统中关于信号的发送和协议定义的一层。对于USB系统中这一层中各个定义的详细情况可参见第六章和第七章。本章中介绍的数据
发表于 06-17 10:32
1、直接数据流,速度最快2、本地变量,速度稍慢3、采用属性节点Description,速度慢了一个数量级4、直接数据流+属性节点只增加为两者单独调用时间的累加。5、属性节点Value为什么比属性节点
发表于 11-14 17:13
属性节点即可以用于控制器又可以用于指示器.而数据流是不能直接在两个指示器中进行数据传递的.下面分别用三种传递数据的方法来分析一下它们的区别和运行效率.在第三个框图中,最初我用的是和上两个框图同样的运行
发表于 11-30 14:57
”来满足数据流的要求。这里待测vi我们用一个“等待”函数来代替。图3强制人工数据依赖关系“顺序结构”顺序结构确保:第一帧:开始计时,第二帧:运行“等待”函数或待测vi,第三帧:停止计时并显示结果。这里
发表于 02-14 11:10
,我们现在所使用的以空间为基础的网络将会逐步被以时间为基础的“世界数据流”(worldstream)所代替。信息则将通过“世界数据流”不断且稳定地流向过去的时间点。因为计算机在不远的将来所发
发表于 02-04 09:46
我在NI上下载了labview一个程序,运行起来还有点小问题,我想运行 看看他的数据流,深入的研究下,哪位大神能指导下,怎么增加个仿真信号 和输出采集,这样能清楚的看到其整个数据流的过程,谢谢~
发表于 12-31 10:40
想用LABVIEW吧八个通道数据流分开,请问有什么好方案吗?
发表于 02-11 10:38
我要从单片机上传送三个数据(温度、高度、速度)到LabVIEW上实时显示(通过串口),发送一个的我会,但同时发送三个我就纠结了很久。{:2:}
发表于 07-22 10:44
1、直接数据流,速度最快2、本地变量,速度稍慢3、采用属性Description,速度慢了一个数量级4、直接数据流+属性节点只增加为两者单独调用时间的累加。5、属性节点Value为什么比属性节点
发表于 11-13 11:16
本帖最后由 羊驼啊 于 2016-11-3 22:58 编辑
关于全局变量编程和数据流编程。labview里很重要的一个部分就是多线程之间交换数据。不止一本书里提到,要慎用全局变量。理由一般
发表于 11-03 22:55
摘要许多业务有实时数据处理的需求。相较于传统的数据库+流计算+应用服务器方案,使用基于表格存储实时数据流的Serverless计算方案有自动弹性伸缩及开发简单、部署简单等优点。本文通过一个想象
发表于 11-10 17:54
我想设置AD9122发送一组实数的数据流,(利用FPGA产生的10M载波信号)应该怎样设置寄存器呢?我的想法是这样的 1B->E4(旁路预调值,旁路反sinc-1滤波器,旁路NCO
发表于 09-26 17:47
`大家好,我想通过动作一次布尔控件向串口发送一个指令,过1S再自动发送一个指令。1、我用平铺顺序结构把两个指令分别放进两个帧里面,显示无法确定数据流方向。2、请问有什么办法能满足我需要求?`
发表于 11-01 13:56
LabVIEW按照数据流(dataflow)模式运行VI。 当接受到所有所需的输入时,程序框图节点将运行。节点在运行时产生输出端数据并将该数据传送给数据流路径中的下一个节点。 数据流经节点的过程
发表于 11-20 10:47
位数据流处理器负责完成程序中所有有关数据的操作。位数据流处理器实际上就是一个序列发生器,它控制发送缓冲器、接收 FIFO 和 CAN 总线之间的数据流,同时它也执行错误检测、仲裁、位填充和 CAN
发表于 12-21 18:19
` 砖厂验煤机化验砖坯的三个步骤的产品介绍:砖厂验煤机化验砖坯的三个步骤是由【鹤壁煤炭化验设备】提供的砖厂验煤机化验砖坯的三个步骤大卡机:186.3920.3323化验机0392-2121168
发表于 02-28 11:51
的广泛应用,为提高编程效率,真正理解并灵活掌握LabVIEW数据流语言是必要的。1 数据流编程的特点 数据流语言的每个节点在执行之前需要提供其所有输入端口的有效数据,LabVIEW允许用户在一个图表上拥有
发表于 04-11 09:40
课题设计要用5050 rgb 来做一个七彩灯,通过让rgb三个灯的组合来显示不同的颜色,所以就需要一个芯片,这个芯片给不同的ttl,他的输出就会让不同的通道出电平,哪位大神知道,小弟在这里谢过了
发表于 05-23 23:57
: 可以看到LabVIEW使用图标来完成编程的动作。它的运行是基于数据流的,也就是说当一个函数执行所需要的全部数据被这个函数接收后这个函数就开始执行。 LabVIEW的工作方式 LabVIEW
发表于 05-28 07:40
单片机与电脑通过IIC 通讯,有没有方法读取通讯时的数据流。。。
发表于 09-19 09:13
我正在深入研究协调引导程序的工作方式。特别地,我正在研究数据流是如何工作的,以便能够发送被破坏的文件。引导加载程序使用Intel十六进制文件。我想确认(似乎的确如此)引导加载程序一次发送一行十六进制
发表于 04-06 07:52
】这个全局变量,或者在外部加上一次while循环,都可以解决掉这个问题,但这个数据流原理我不太清楚是因为什么,有没有哪位大拿分析分析
发表于 08-13 09:53
[嵌入式系统无疑是当前国内最热门的技术之一,但是该如何来学好嵌入式系统?好的学习方法是前提,但正确的学习步骤依然不可缺少,分享一下比较主流的嵌入式学习步骤,对不知该从哪里开始学习和入手的朋友都会有一定的帮助,可以为你指点迷经。嵌入式学习步骤主要分为三个阶段
发表于 01-14 07:25
工业4.0愿望和网络安全含义实现网络安全工业4.0的三个步骤通过硬件安全性实现互联工厂
发表于 02-19 06:50
本文讨论了支持高速数据流处理的技术、最大化系统流处理性能的应用设计和在数据流导入磁盘与数据流导入存储器应用中可获得的数据速率基准。
发表于 04-29 06:25
求大佬分享一个基于模拟音频连接器的全双工数据流实现方案
发表于 06-03 06:06
的操作以及利用PyQt5编辑软件界面的简单步骤。实现难度不大,但需要运行第二线程运行输出脉冲的程序。 首先,推荐一下PyQt5和Eric6的学习资料...
发表于 09-16 07:48
。无需CPU直接控制,通过硬件为RAM和IO设备开辟一条直接数据传输通道,将数据直接从一个地址空间复制到另一个地址空间,传输动作本身由DMA控制器实现。作用:为CPU减负,提升CPU效率STM32F4/F7: 2个DMA控制器,16个数据流。每个DMA控制器都用
发表于 11-03 06:32
ADC有哪几种运行方式?ADC的数据流是怎样的?
发表于 02-28 07:38
问题描述及复现步骤:我们现在想在RK3568的I2s1 接口上使用sdi0sdi1 两个输入管脚上 接收pcm数据流。不知道怎么配置使用。
发表于 02-20 15:50
问题描述及复现步骤:我们现在想在RK3568的I2s1 接口上使用sdi0 sdi1 两个输入管脚上 接收pcm数据流。不知道怎么配置使用。
发表于 03-13 14:26
CSMA/CA协议与CSMA/CD协议的差异使数据流间的竞争具有与有线网络不同的特性。该文通过在无线Mesh网络实验床上进行的实验对无线数据流间的竞争进行研究。实验结果表明,在共享信
发表于 04-07 08:49
•29次下载
针对动态Web页面资源中的实施细粒度和透明访问控制问题,定义片断的概念,提出基于数据流分析的“片断”级Web页面资源的访问控制方法,分析数据流中的请求信息与响应片断的
发表于 04-09 09:27
•23次下载
为提高Java软件的安全性,针对Java程序的脆弱性分析问题,提出一种基于数据流的感染分析法,阐述了具体思路和实现步骤。依据该方法实现的分析系统能有效分析出Java字节码程序
发表于 04-11 09:43
•11次下载
本文剖析了LabVIEW 数据流语言的特点,提供了其若干有效控制方法,指出LabVIEW 本身即可解决数据流控制上的变量冲突、响应时序控制、初始状态自适应调整等问题并保证其通用性,
发表于 07-30 11:39
•13次下载
本文基于数据流框架理论,提出了如何将数据流分析方法应用于JAVA 字节码中,通过建立数据流与半格、数据流和函数调用图的关系,从而对类型信息进行分析。实验表明该数据流分
发表于 12-25 13:22
•9次下载
提出了一种新的XML数据流XPath查询模型GBRender,该模型通过组着色序列来直接处理元素,具有较高的处理效率与较强的适应性。
发表于 08-02 14:16
•26次下载
针对网络数据流存储的瓶颈问题,提出了一种网络数据流存储算法分析与实现方法,仿真结果表明,模型能显著提高网络数据流的实时存储能力
发表于 05-26 15:57
•21次下载
yuv422p格式数据流转换成RGB888格式数据流,亲测可用
发表于 02-25 18:12
•14次下载
驾培行业科目三CAN模块AT指令及数据流协议
发表于 06-14 14:13
•21次下载
驾培CAN模块专用科目三AT指令及数据流接口协议
发表于 06-17 14:59
•17次下载
关于fpga实验的简单步骤,更利于初学者学习
发表于 09-13 17:00
•4次下载
针对电子文件网络安全问题,为了防止敏感数据的泄漏,为电子文件的访问提供依据,提出了一种基于数据流特征的电子文件访问方法。通过研究网络传输电子文件的数据报文格式、传送形式以及通信行为特征,结合电子文件数据流
发表于 11-15 14:15
•5次下载
算法(FCM)的最终聚类结果依赖于其初始值的选取,也解决了其容易陷入局部最优解的问题。通过将SACA FCM算法和FCM算法聚类数据流的实验结果进行对比,得出采用SACAFCM算法聚类数据流会取得较好的效果。
发表于 11-22 11:51
•9次下载
提出了新的挑战。针对数据流程序在分布式架构下所面临的问题,设计并实现了数据流编程模型和分布式计算框架的结合在COStream的基础上提出了面向Storm的编译优化框架。框架包括两个模块:面向Storm的层次性任务划分与调度,以及面
发表于 11-23 15:48
•3次下载
近年来,数据流分类问题已经逐渐成为数据挖掘领域的一个研究热点,然而传统的数据流分类算法大多只能处理数据项已知并且为精确值的数据流,无法有效地应用于现实应用中普遍存在的不确定数据流。为建立适应数据
发表于 11-28 15:45
•0次下载
的实时处理能力。详细介绍了组成基于大数据的分布式数据流处理系统的四个子系统及其关键技术,讨论和比较了各个子系统的不同技术方案;同时介绍一种分布式拒绝服务( DDoS)攻击检测数据流处理系统结构案例,其研究内容能为大数据环境下
发表于 12-05 19:04
•0次下载
的无限数据流环境,在静态数据集下的基于模式的贝叶斯分类器就不能适用.为了解决这些问题。提出了基于显露模式的数据流贝叶斯分类模型EPDS(Bayesian classifier algorithm based on emerging pattem for data stream).该模型使用一个简单
发表于 12-25 14:51
•0次下载
大 规模任务是已被证实的 NP 难问题.专注于解决优化云数据流中的调度过程,并受现实世界启发,从不同角度将优化 目标分别划分为用户指标(完工时间和经济成本)和云系统指标(网络带宽、存储约束和系统公平度),并将该调度问 题制定成为一个新的连
发表于 12-30 11:44
•0次下载
针对计算机网络访问请求具有实时到达以及动态变化的特点,为了实时检测网络入侵,并且适应网络访问数据的动态变化,提出一个基于数据流的网络入侵实时检测框架。首先,将误用检测模式与异常检测模式相结合,通过
发表于 01-17 10:09
•0次下载
传统基于欧氏距离的异常检测算法在高维数据检测中存在精度无法保证以及运行时间过长的问题。为此,结合高维数据流的特点运用角度方差的方法,提出一种改进的基于角度方差的数据流异常检测算法。通过构建最佳数据集
发表于 01-17 11:29
•1次下载
函数的值,以此值的大小来判断数据点属于某簇的程度;然后,将所提方法运用到数据流聚类的在线一离线框架中;最后,采用真实数据集KDD-CUP99和随机生成的人工数据集进行算法的测试。实验结果表明,所提方法的聚类纯度在92%以上
发表于 02-10 11:54
•0次下载
针对现有长持续时间数据流检测算法的实时性差、检测精度与估计精度低的问题,提出长持续时间数据流的并行检测算法。基于共享数据结构的长持续时间数据流的并行检测算法中不同线程访问共享数据结构,线程之问的同步
发表于 03-06 15:54
•0次下载
模式集合的完整程度进行分类,数据流中频繁模式分为全集模式和压缩模式。压缩模式主要包括闭合模式、最大模式.top-k 模式以及三者的组合模式。不同之处是闭合模式是无损压缩的,而其他模式是有损压缩的。为了得到有趣的频繁模
发表于 03-27 14:49
•2次下载
电子发烧友网为你提供选择微控制器的10个简单步骤资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
发表于 04-17 08:51
•9次下载
使用LTpowerCAD在五个简单步骤中设计电源
发表于 04-17 16:57
•9次下载
EMI合规性的简单步骤:ADM2582E和ADM2587E信号和电源隔离RS-485
发表于 05-24 12:12
•8次下载
电子发烧友网站提供《使用PubNub Twitter数据流将Twitter连接到littleBits .zip》资料免费下载
发表于 12-23 17:46
•0次下载
本文主要介绍三个最简单的三极管放大电路
发表于 12-30 10:42
•24.9w次阅读
的兼容性。 这里详细介绍了Virtex 系列FPGA 芯片的数据流大小及结构。Virtex支持一些新的非常强大的配置模式,包括部分重新配置,这种配置机制被设计到高级应用中,以便通过芯片的配置接口能够访问及操作片内数据。但想要配置芯片,对它的数据流结构的了解是必不可少的。
发表于 11-18 11:37
•1664次阅读
物联网的基本安全可分为三个简单步骤。 如果还有关于物联网(IoT)有多受欢迎的任何争论,现在都可以停下来了,因为2018年物联网设备数量有望超过智能手机。像谷歌、苹果、微软和其他主要大公司都在物联网
发表于 09-11 12:23
•284次阅读
本视频介绍了数据链路层的三个基本问题。封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从比特流中识别帧的开始和结束。
发表于 02-27 15:10
•8675次阅读
数据流——描述程序运行过程中数据的流转方式及其行为状态。在MVC模型中,Model层的本质就是“数据”,数据在MVC的各个构成要素中流转并且在不同的层次扮演着不同的角色。当程序运行起来之后,我们会发现正是由于数据的流转,才使得原本孤立和静态的元素形成了互动。
发表于 02-27 15:22
•2.3w次阅读
数据流最初是通信领域使用的概念,代表传输中所使用的信息的数字编码信号序列。然而,我们所提到的数据流概念与此不同。这个概念最初在1998年由Henzinger在文献87中提出,他将数据流定义为“只能以事先规定好的顺序被读取一次的数据的一个序列”。
发表于 02-27 15:25
•4765次阅读
本视频主要详细介绍了电脑卡怎么办简单步骤,分别是卸载同类型的软件、清理回收站、借助软件清理电脑垃圾、定期清理磁盘碎片、系统垃圾文件、重装系统。
发表于 03-08 16:22
•7635次阅读
Labview数据流编程基本概念视频教学
发表于 08-05 06:05
•3210次阅读
对于许多软件开发人员来说,面向对象编程是一个很好的工具。遗憾的是,使用过程C编程语言的嵌入式软件工程师在许多现代编程语言功能上都失败了。抽象数据类型(通常简称为ADT)是数据类型,其实现细节隐藏在数据结构的用户视图中,但ADT可以使用五个简单步骤在C中开发。
发表于 08-07 14:40
•2042次阅读
在上一篇文章中,我解释了流算法的概念,并给出了许多如何应用流算法的示例。 其中之一是在不保存数据流元素的情况下计算数据流的滚动平均值。 现在,我想扩展这个示例,并在异常值检测的背景下向您展示另一种流算法的用例。
发表于 05-03 18:17
•2474次阅读
数据流(Data Flow)是控制流中的核心组件,用于把数据提取到服务器内存中,转换数据并把数据写入到目标结构中。
发表于 11-06 11:19
•2415次阅读
在这篇文章中,我们将深入研究Tensorflow Tensor的实现细节。我们将在以下五个简单步骤中介绍与Tensorflow的Tensor中相关的所有主题:第一步:张量的定义→什么是张量?第二步:创
发表于 12-24 14:35
•455次阅读
,智能数据转换,高级安全功能和边缘计算等功能使CloudRail成为市场上最先进的边缘解决方案。它使您可以极快地实现IIoT试点,同时也是大规模安装的最佳选择。 本文将介绍如何借助虹科CloudRail.Box通过4个简单步骤极快地实现IIOT,将激光距离传感器的数据上传到阿里云物联网平台
发表于 08-23 10:33
•1350次阅读
方向定义标准,再分别从点目标匹配、线目标匹配两个角度,完成基于网格索引的高速网络数据指标度量。在此基础上,按照信息表建立条件,描述既定的数据流偏好,再通过计算分发查询向量的处理方式,实现对高速网络数据流
发表于 11-03 16:32
•260次阅读
将数据记录器连接到PC的USB或以太网端口,然后运行提供的设置软件。通过以下方式根据您的特定要求配置数据记录仪:
发表于 12-02 16:27
•238次阅读
本文将详细介绍如何通过关注特定传感器参数来优化实时控制系统的数据捕获提供了三个技巧。
发表于 12-22 14:20
•240次阅读
为了简化设计任务并提高设计质量和生产率,LTpowerCAD分析仪™程序由凌力尔特的电源应用专家开发,作为电源设计和优化工具。本文解释了如何通过几个简单的步骤对开关模式电源关键参数进行“纸面设计”,并取得良好的效果。
发表于 01-08 09:32
•475次阅读
评论