利用利用LabVIEW优化多核处理器环境中的自动化测试优化多核处理器环境中的自动化测试
迄今,处理器技术领域中的创新已经使得计算机具备了工作于更高时钟速率的中央处理器单元(CPU)。然而,随
着时钟速率逼近其理论上的物理极限,具有多个(而不是单个)处理核的新型处理器正处于研发之中。利用这些新
型多核处理器,自动化测试应用利用并行编程技术,便可以达到最佳性能和最高吞吐量。Edward Lee博士-加州
大学伯克利分校电气与计算机工程系的杰出教授-这样描述并行处理的技术优势:“许多技术专家预言,回应摩尔
定律的终结的将是日趋并行的计算机架构。如果我们希望继续提高计算性能,计算机程序必须能够利用这种并
行机制。”
多线程编程的挑战多线程编程的挑战
迄今,处理器技术领域中的创新已经使得计算机具备了工作于更高时钟速率的中央处理器单元(CPU)。然而,随着时钟速率逼近其理论上的物理极限,具有多个(而不
是单个)处理核的新型处理器正处于研发之中。利用这些新型
而且,利用多核处理器的编程应用是一个巨大的编程挑战,这是广为接受的。比尔盖茨-微软公司的缔造者关于这一挑战有这样一段话:“要想充分利用并行工作的处
理器的威力,...软件必须能够处理并发性问题。但正如任何一位编写过多线程代码的开发者告诉你的那样,这是编程领域最艰巨的任务之一。”
幸运的是,
实现并行测试算法实现并行测试算法
得益于并行处理的一项常见自动化测试应用(ATE),便是多通道信号分析。由于频率分析是一项占有处理器较多的操作,通过并行化处理测试代码使得每个通道的信
号处理被分配至多个处理器核,可以提高执行速度。从编程人员的角度来看,为获得这一技术优势,所需的唯一改变便是仅仅重构测试算法。
为描述这一过程,我们将比较用于多通道频率分析(傅立叶变换或FFT)的两个算法的执行时间,它们分别位于一个高速数字化仪的两个通道上。在该测试中,我们使
用PXIe-5122 14-位高速数字化仪的两个通道,以最高采样率(100MS/s)采集信号。首先,我们这一操作在LabVIEW中的传统的顺序编程模型。
图1:利用顺序执行的LabVIEW代码
在上述模块框图中,两个通道的频率分析均在一个FFT快速VI中完成,它顺序分析每个通道信号。虽然上述算法也可以在多核处理器中有效执行,但仍存在通过并行
处理每个通道提高算法性能的可能。
如果我们剖析上述算法,我们会发现完成FFT所需的时间要比从高速数字化仪采集数据长得多。通过每次获取一个通道的数据并并行执行两次FFT,我们可以显著降
低处理时间。下图表示了一个采用并行方法的新的LabVIEW模块框图。
图2:利用并行执行的LabVIEW代码
如上面代码所示,将顺序获取数字化仪的每个通道的数据。注意,如果两次数据获取均来自不同的仪器,那么完全可以并行完成这些操作。然而,由于傅立叶变换占
用大量的处理器时间,我们仍可以仅通过将信号处理并行化改善性能。故而减少了总的执行时间。两种实现的执行时间如下所示:
图3:顺序算法与并行算法(时间)的执行时间比较
如上图所示,随着数据块大小(每次获取的采样数)的增加,通过并行处理节约的处理时间愈为显著。事实上,对于更大的数据块,并行算法实现近2倍的性能改进。下
图描述了性能增长的精确百分比随采集数据块大小(以采样数为单位)的变化。
图4:并行算法带来的性能增长(百分比)
图4显示,当数据块大于1百万采样(100Hz精度带宽)时,并行方式实现80%或更高的性能增长。
在多核处理器之上,我们可以方便地实现自动化测试应用的性能改进,因为LabVIEW动态地分配每一个线程。事实上,用户不需要创建特殊的代码以支持多线程,而
是通过最少的编程调整,并行测试应用便可以获益于多核处理器。
配置定制的并行测试算法配置定制的并行测试算法
将信号处理并行化的技术优势在于它支持LabVIEW在多个处理器核中划分CPU的用度。在下图中,我们描述了CPU处理算法每一部分的次序。
图5:CPU的处理执行
如图所示,LabVIEW能够并行处理许多采集数据,从而节省了执行时间。对于LabVIEW,并行处理的需求之一便是拷贝(或克隆)每个信号处理子例程。缺省情况
下,LabVIEW的许多信号处理算法配置为“重入执行”。这就意味着LabVIEW将动态分配每个子例程的一个不同实例,包括独立线程和存储空间。因而,定制子例程必须
被配置为工作于重入方式。这可以通过LabVIEW中一个简单的配置步骤完成。欲设置这一属性,选择文件菜单下VI属性并选中“执行”栏;然后,选中“重入执行”标记(如
下所示)。
评论0
最新资源