利用LabVIEW优化多核处理器环境下的自动化测试应用

发布者:Yuexiang666最新更新时间:2016-07-28 来源: eefocus关键字:LabVIEW  多核处理器  自动化测试 手机看文章 扫描二维码
随时随地手机看文章
1. 多线程编程的挑战

迄今为止,处理器技术的创新为我们带来了配有工作于更高时钟速率的CPU的计算机。然而,随着时钟速率逼近其理论上的物理极限,人们开始投入到具备多个处理核的新型处理器的开发。借助这些新型多核处理器,工程师们在自动化测试应用开发中利用并行编程技术,可以实现最佳的性能和最大的吞吐量。爱德华×李博士——加州大学伯克利分校电气与计算机工程教授——阐述了并行处理的技术优势。

“许多技术专家预言,对于摩尔定律的终结回应,将是日趋并行的计算机架构。如果我们希望继续提高计算性能,计算机程序必须能够利用这种并行机制。”

而且,业界专家业已认识到,对于编程应用,如何利用多核处理器将是一个巨大的挑战。比尔×盖茨——微软公司的缔造者——是这样论述的:

“要想充分利用并行工作的处理器的威力,…软件必须能够处理并发性问题。但正如任何一位编写过多线程代码的开发者告诉你的那样,这是编程领域最艰巨的任务之一。”

幸运的是,NI Labview软件,通过一个直观的、用于创建并行算法的API,为我们提供了一个理想的多核处理器编程环境,所创建的并行算法可以将多个线程动态分配至一项给定的应用。事实上,您可以利用多核处理器优化自动化测试应用,以获取最佳性能。

而且, PXI Express的模块化仪器增强了这一技术优势,因为这些仪器利用了PCI Express总线所能支持的高数据传输速率。得益于多核处理器和PXI Express仪器的两个具体应用是:多通道信号分析和在线处理(硬件在环)。在此白皮书中,我们将评估各种并行编程技术,并描述每项技术所带来的性能优势。

至页首2. 实现并行测试算法

一项常见的得益于并行处理的自动化测试应用便是多通道信号分析。由于频率分析是一项占用处理器运行时间较多的操作,您可以并行运行测试代码,将每个通道的信号处理分配至多个处理器核,提高执行速度。从编程人员的角度来看,为获得这一技术优势,唯一需要改变的只是测试算法结构的细微调整。

为描述这一过程,现比较用于多通道频率分析(快速傅立叶变换或FFT)的两个算法的执行时间,它们分别位于一个高速数字化仪的两个通道上。NI PXIe-5122 14-位高速数字化仪的两个通道均以最高采样率(100 MS/s)采集信号。首先,我们察看LabVIEW中对应于这一操作的传统顺序编程模型。

 

图1. 利用顺序执行的LabVIEW代码

采集来自数字化仪的两个通道的信号

图1中,两个通道的频率分析均在一个FFT快速VI中完成,它顺序分析每个通道信号。虽然上述算法也可以在多核处理器环境下有效执行,但是,您还可以通过并行处理每个通道来进一步提高算法性能。

如果您剖析上述算法,就会发现完成FFT所需的时间要比从高速数字化仪采集数据长得多。通过每次获取各个通道的数据并且并行执行各个通道的FFT,可以显著降低处理时间。图2表示了一个采用并行方法的新的LabVIEW模块框图。

 

图2. 利用并行执行的LabVIEW代码

顺序获取数字化仪的每个通道的数据。值得注意的是如果两次数据获取均来自不同的仪器,那么您可以彻底并行完成这些操作。然而,由于FFT占用大量的处理器时间,您仍可以仅通过将信号并行处理来改善性能,减少了总的执行时间。图3显示了两种实现的执行时间:

 

图3. 随着数据块大小的增加,通过并行处理节约的处理时间愈为显著。

事实上,对于更大的数据块,并行算法方法实现了近2倍的性能改进。图4描述了性能随采集数据块大小(以采样数为单位)增大而提高的精确百分比。

 

[+] 放大图像

图4. 对于大于1百万采样(100 Hz精度带宽)的数据块,并行方式实现了80%或更高的性能增长。

在多核处理器环境下,可以方便地实现自动化测试应用的性能改进,因为您可以使用LabVIEW动态地分配每一个线程。事实上,您不需要创建特殊的代码以支持多线程,而是通过最少的编程调整,利用多核处理器来达到并行测试。

至页首3. 配置定制的并行测试算法

并行信号处理算法帮助LabVIEW在多个处理器核中划分处理器的用途。图5按顺序描述了CPU处理算法每一部分。

 

图5. LabVIEW能够并行处理许多采集数据,从而节省了执行时间。

并行处理要求LabVIEW拷贝(或克隆)每个信号处理子例程。缺省情况下,LabVIEW的许多信号处理算法配置为“可重入执行”。这就意味着LabVIEW将动态分配给每个子例程唯一的实例,包括独立线程和存储空间。因而,您必须将定制的子例程的配置,工作于可重入方式。您可以通过LabVIEW中一个简单的配置步骤完成这一工作。欲设置这一属性,选择文件菜单下VI属性并选中“执行”栏;然后,选中“可重入执行”标记(如图6所示)。

 

图6. 通过这一简单步骤,您可以并行执行多个定制的子例程,就如同标准的LabVIEW分析函数。

因此,在多核处理器环境下,您可以通过简单的编程技术实现您的自动化测试应用的性能改进。

至页首4. 优化硬件在环应用

得益于并行信号处理技术的又一个应用便是为同时输入与输出使用多个仪器。一般,这些应用被称为硬件在环(HIL)或在线处理应用。在此情况下,您可以使用高速数字化仪或高速数字I/O模块来采集信号。在您的软件中执行数字信号处理算法。最后,通过另一个模块化仪器生成结果。图7描述了一个典型的模块框图。

 

图7. 该框图描述了一个典型的硬件在环(HIL)应用所包括的执行步骤。

常见HIL应用包括在线数字信号处理(如滤波、插值等)、传感器仿真和定制组件模拟。您可以使用多种技术,以获得在线数字信号处理应用的最佳吞吐量。

通常,您可以使用两种基本的编程结构,单循环结构和带有队列的流水线式多循环结构。单循环结构实现简单,对于小数据块具有较低时延。相比之下,多循环结构能够支持高得多的吞吐量,因为它们能够更好地利用多核处理器。

对于传统的单循环方式,您顺次组织一个高速数字化仪的读函数、信号处理算法和高速数字I/O的写函数。如图8的模块框图所示,这些子例程中的每一个都必须按照LabVIEW编程模型所确定的顺序执行。

 

图8. 对于LabVIEW的单循环方式,每个子例程都必须顺次执行。

单循环结构受限于几个因素。由于顺序执行每一环节,处理器在处理数据的同时受限,无法执行仪器I/O。在这种方式下,由于处理器一次只能执行一个函数,所以您无法有效利用一个多核CPU。虽然单循环结构可以处理较低的采集速率,但是,如需更高的数据吞吐量,仍须采用多循环方式。

多循环架构使用队列结构实现while循环间的数据传递。图9描述了多个while循环(带有一个队列结构)间的编程方式。

 

图9. 借助队列结构,可以实现多个循环间的数据共享。

图9所表示的是典型的所谓生产者/消费者循环结构。在此例中,一个高速数字化仪在一个循环中持续采集数据,并在每次迭代中将新的数据集传递至FIFO队列。消费者循环仅需监视队列的状态,当每个数据集可用时将其写入磁盘。采用队列的意义在于这两个循环均可相互独立执行。在上例中,高速数字化仪可以持续采集数据,即使这些数据写入磁盘时存在一定的延迟。与此同时,其它的采样仅需存储在FIFO队列中。通常来说,生产者/消费者流水线方法,通过更有效的处理器利用率,提供更高的数据吞吐量。这一技术优势在多核处理器环境下更为显著,因为LabVIEW可以动态分配处理器线程至每个处理器核。

对于一项在线信号处理应用,您可以使用三个独立的while循环和两个队列结构,实现其间的数据传递。在此应用情况下,一个循环将从一台仪器采集数据,一个循环将专门执行信号处理,而第三个循环将数据写入到另一台仪器。

 

图10. 该模块框图描述了带有多个循环与队列结构的流水线式信号处理。

图10中,最上面的循环是一个生产者循环,它从一个高速数字化仪采集数据,并将其传递至第一个队列结构(FIFO)。中间的循环同时作为生产者和消费者工作。每次迭代中,它从队列结构中接收(消费)若干个数据集,并以流水线的方式独立对其进行处理。这种流水线方式通过支持高达四个数据集的独立处理,实现了在多核处理器环境下的性能改进。注意,中间的循环同时也作为一个生产者工作,将处理后的数据传递至第二个队列结构。最后,最下面的循环将处理后的数据写入至高速数字I/O模块。

并行处理算法改善了多核CPU的处理器利用率。事实上,总吞吐量取决于两个因素,处理器利用率和总线传输速度。通常,CPU和数据总线在处理大数据块时工作效率最高。而且,我们可以进一步使用具有更快传输速度的PXI Express仪器,减小数据传输时间。

 

图11. 多循环结构提供比单循环结构高得多的吞吐量。

图11描述了最大吞吐量和采样率的关系,采样数据块大小以采样点数来计算。此处所描述的所有标定都是围绕16位采样进行的。此外,所采用的信号处理算法为一个截止频率为采样率的0.45倍的7阶巴特沃兹低通滤波器。如数据显示,您可以在4阶流水线式(多循环)方式下达到最大数据吞吐量。注意,2阶信号处理方式获得了比单循环方式(顺序)更好的性能,但其CPU的利用率低于4阶方式。上面所列的采样率均为NI PXIe-5122高速数字化仪和NI PXIe-6537高速数字I/O模块的输入和输出的最大采样率。注意,当采样率为20 MS/s时,应用总线的输入和输出的数据传输率均为40 MB/s,所以总的总线带宽为80 MB/s。

而且,应当考虑的是,流水线式处理方式在输入与输出之间确实引入了时延。所引入的时延取决于几个因素,包括数据块的大小和采样率。下面的表1和表2比较了单循环和4阶多循环架构中的实测时延随数据块大小和最大采样率的变化情况。

 

 

表1和2. 这两个表格描述了单循环和4阶流水线的时延。

如您所推测,当CPU的使用率接近100%时时延也随之增加。这一点在采样率为20 MS/s的4阶流水线范例中尤为明显。相比之下,任何一个单循环范例的CPU使用率都几乎不会超过50%。

至页首5. 总结

基于PC的仪器系统,如PXI和PXI Express模块化仪器,从多核处理器技术的进步和数据总线速度的提高中获益匪浅。当新型CPU通过添加多个处理核改进性能时,并行或流水线式处理结构在最大化CPU效率时是必须的。幸运的是,LabVIEW通过将需要处理的任务动态分配至每个处理核,解决了这一编程难题。如上所述,您可以通过将LabVIEW算法结构化以利用并行处理,实现性能的显著提高。

关键字:LabVIEW  多核处理器  自动化测试 引用地址:利用LabVIEW优化多核处理器环境下的自动化测试应用

上一篇:Labview数据库基本操作及相关一些步骤和疑问解决方法
下一篇:如何用LabVIEW实现多功能无纸记录仪

推荐阅读最新更新时间:2024-03-30 23:19

基于LabVIEW的数字通信系统EVM和ACPR全自动化扫描测试
  随着无线 数字通信 的迅猛发展,对于集成电路设计和测试提出了更多的挑战。在产品设计阶段,为了保证系统中 射频 和基带芯片的协同工作能力和兼容性,需要对系统进行严格的性能测试。然而,日益复杂的数字调制技术常常给面对紧凑的项目期限的设计团队带来更多的压力。所以,设计人员不仅要在短时间内完成系统的测试,还要尽快从测试结果中推断出造成问题的可能原因。本文提出一种全自动化的扫描测试方案,可以对数字通信系统发射链路两个关键参数EVM(ErrorVector Magni rude)和ACPR(Adjacent Channel Power Ratio)进行快速、准确地测量,以便在第一时间找到设计中问题所在。   1 数字通信发射链路测试
[测试测量]
基于<font color='red'>LabVIEW</font>的数字通信系统EVM和ACPR全自动化扫描测试
LabVIEW实现近红外测量
  近红外谱区(1)是指位于可见谱区与中红外谱区之间的一段电磁波谱,即介于780-2526nm的光区。近红外光谱(Near-infrared Spectroscopy, NIRS)可划分为短波长近红外波段和长波长近红外波段,其波段范围分别为780-1100nm和1100-2526nm。由于频率较高,NIR谱区分子对其吸收主要是分子振动的倍频与合频吸收。NIRS分析技术是通过被分析物质中的含氢基团,如OH、CH、NH、SH、PH等在近红外区域内表现有特征吸收,利用计算机技术及化学计量学方法,对扫描测试样品的光学数据进行一系列的分析处理,最后完成该样品有关成分的定量分析任务。   基于虚拟仪器的 近红外 整粒小麦成分测量系统主要包括仪器
[测试测量]
采用LabVIEW 8.2的多用虚拟电压表原理及设计
概述:为了满足不同测量的要求传统的电压表分别做成独立的仪表,包括峰值电压表、平均值电压表和有效值电压表。在此,提出采用虚拟仪器同时实现三种示值电压表的方案;介绍了虚拟仪器软件平台LabVIEW的特点。对虚拟数字电压表的设计和实现进行了详细描述,包括基于LabVIEW 8.2的虚拟信号发生器的实现过程,它能产生正弦、方波、三角波及由输入数学公式确定的复杂自编辑波形。最后,对设计的虚拟电压表运行结果进行分析,验证了虚拟电压表设计方法的正确性。 虚拟仪器是随着计算机技术、电子测量技术和通信技术发展起来的一种新型仪器。它充分利用计算机系统强大的数据处理和显示能力,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等,通过软、硬
[测试测量]
采用<font color='red'>LabVIEW</font> 8.2的多用虚拟电压表原理及设计
LabVIEW7的功能展示
[测试测量]
利用LabVIEW 数据记录和监控模块进行仿真与控制
多元模型开发结构 作者: Matt Taylor - Iggesund Paperboard Workington Mill 行业: Manufacturing, 管道/纸业 产品: 数据采集, 数据记录与监控模块, LabVIEW 挑战: 创建一个用来监测大型造纸厂纸浆的生产过程,以节约能源和降低成本。 解决方案: 为了增加吞吐量,节约能源,以及优化生产过程,我们利用NI LabVIEW数据记录和监控(DSC)模块来处理复杂的,非线性的建模过程。 "LabVIEW工具包使同时运行多个模型变得更加容易,这意味着在线性能监控功能可以变得简单直接。" 位 于英国Workington的Iggesund纸板公司,其生产线上主要
[测试测量]
利用<font color='red'>LabVIEW</font> 数据记录和监控模块进行仿真与控制
LabVIEW中读写UTF-8编码的文本文件
在默认情况下,LabVIEW的文本文件只支持ASCI的编码存取(对中文而言则取决于系统默认,如果是简体中文则为GB2312编码,繁体中文则为Big5编码),但是某些情况下需要使用到UTF-8编码的文件。LabVIEW中并没有提供各种常用文字编码之间相互转换的函数,此时可以借助外部的dll解决该问题。下图使用了.Net属性和方法对UTF-8文件的读写( 下载 ),其它编码格式的读取也可以参考解决。 当使用该VI新建了一个UTF-8编码的文本文件后,如何判断该文本是UTF-8编码呢?有个比较简单的方式,使用记事本打开该文件,单击 文件 另存为 菜单项,在弹出的对话框中出现的 编码 中,默认的编码就是该文件的编码格式。
[测试测量]
<font color='red'>LabVIEW</font>中读写UTF-8编码的文本文件
LabVIEW与单片机串口在数据采集系统中的应用
1.LabVIEW分析 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显着区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。 它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形
[测试测量]
<font color='red'>LabVIEW</font>与单片机串口在数据采集系统中的应用
基于LabVIEW的电机故障声测系统
  采用虚拟仪器技术构建了一套电机故障声频检测系统。系统基于LabVIEW虚拟仪器软件平台,实现电机声信号的实时采集、分析和后处理,达到检测故障电机的目的。除了功率谱和1/3倍频程分析,系统在LabVIEW平台下,采用Matlab script节点方法完成小波变换,实现噪声信号的特征向量提取。现场应用表明该系统效果良好。   1 虚拟仪器系统的构成   虚拟仪器是当今世界流行的一种仪器构成和检测控制方案。虚拟仪器是一种开放式的、将计算机平台与具有标准接口的硬件模块以及开发测试软件相结合的系统,具有通用性好和使用方便等特点。其典型的硬件结构为:传感器一信号调理器一数据采集设备一计算机。电机故障声测系统总体结构如图1所示,由监听头f传
[测试测量]
基于<font color='red'>LabVIEW</font>的电机故障声测系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved