确定何时使用多CPU
- 更新时间2025-05-20
- 阅读时长3分钟
安装NI RT Extensions for SMP后,Real-Time模块在可用的CPU之间平衡分配线程,这个过程叫做自动负载平衡。自动负载平衡使具有并行机制的RT终端VI能充分使用多CPU系统的各种优点。多CPU系统也叫多核、多处理器或SMP系统。但是,在CPU之间传输数据的速度比在一个CPU上前后两个操作之间传输数据慢。另外,CPU排序器的开销会对RT系统的延迟稍有影响,减慢单点I/O的速度,单点I/O不受益于并行机制。总而言之,只有当并行处理机制节省的时间超过在CPU之间传输数据消耗在分配系统资源上的时间时,应用程序才能从多CPU系统中受益。
注: 如不确定是否使用NI RT Extensions for SMP运行应用程序,可在两种情况下分别测试应用程序的运行。使用NI Measurement & Automation Explorer (MAX)中的LabVIEW Real-Time软件向导安装和卸载用于SMP的NI RT Extensions。关于使用LabVIEW Real-Time软件向导的信息,请参考MAX帮助。(NI Linux Real-Time)在NI Linux Real-Time终端上,不能卸载NI RT Extensions for SMP。
受益于多CPU系统的应用程序
实时应用程序通常包括与实时任务并行运行的数据记录或通信任务。例如,下列程序框图显示的RT终端VI包含两个并行循环。因为并行结构,在多CPU RT系统上运行该应用程序可提高运行速度,无需重写VI。
要求多个实时进行的应用程序也可受益于多CPU系统。因为实时任务具有独占性,单CPU系统上一般只包含一个实时循环。但是,在多CPU系统上,可在每个CPU上包含一个实时循环。
不受益于多CPU系统的应用程序
虽然大多数实时应用程序转移到多CPU系统上后,运行速度会有明显提高,但是,还是有部分VI必须重写才能受益于多CPU系统的优点,有些VI甚至不受益于多CPU系统。多CPU系统对单个顺序循环的实时应用的优点不明显。如循环中包含密集处理的部分,使用流水线结构,可显著提高运行速度。多CPU系统对主要由单点I/O组成的应用程序的执行速度改进不大,因为CPU排序器会小幅增加时间延迟。
包含共享资源的应用程序必须重写代码以避免资源冲突,才能受益于多CPU系统的优势。同时请求使用共享资源将加快并行执行,削弱多CPU系统的性能优势。
注: 关于何时使用NI RT Extensions for SMP的详细信息,请参考NI网站。