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

2012-07-17 18:39:17来源: 21ic

  多线程编程的挑战

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

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

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

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

  幸运的是,NI LabVIEW软件,通过一个直观的、用于创建并行算法的API,为我们提供了一个理想的多核处理器编程环境,所创建的并行算法可以将多个线程动态分配至一

项给定的应用。事实上,您可以利用多核处理器优化自动化测试应用,以获取最佳性能。

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

  实现并行测试算法

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

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

 利用顺序执行的LabVIEW代码

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

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

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

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

利用并行执行的LabVIEW代码

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

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

随着数据块大小的增加

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

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

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

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

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

  配置定制的并行测试算法

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

LabVIEW能够并行处理许多采集数据

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

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

通过这一简单步骤

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

[1] [2] [3]

关键字:LabVIEW  自动化测试  多核处理器

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2012/0717/article_5460.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
自动化测试
多核处理器

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved