使用LabVIEW 8.6进行并行开发——下一代多核、FPGA与无线技术

“世界是并行的。人是并行的。计算机是并行的。为什么要把我们自己限制在顺序编程语言中呢?”

Jeff Kodosky是NI LabVIEW软件之父,他在几年前一年一度的NIWeek会议上提出了这个问题。在您阅读这篇文章的时候,您的大脑正在同时处理多个并行操作,例如图像采集、视觉特征识别、文字解析、数据处理、数据存储和运动控制功能——所有这些事情的进行同时还维持着重要的生命机能,包括呼吸、将血液送到全身、产生能量等等。这些关键技能中有一部分需要自己有意识的思考,但是大部分并不需要。

相似的,您现在创建的测量与控制系统也可以同时进行多项任务。计算领域的工程创新引进了许多建立更高效并行系统所需的关键技术:多核处理器、现场可编程门阵列(FPGA)和无线通信。使用这些传统工具利用这些关键技术并不十分容易;但是,如果在应用中使用这些技术,就可以获得性能更高的系统,提高测量与自动化系统的吞吐量,降低成本。LabVIEW的最新版本8.6为您提供了使用下一代并行技术所需的工具,从多核处理器到高性能FPGA直至无线设备。

 图1:NI机器视觉开发模块的例如图像卷积函数等多个图像处理函数现在能够自动分配到多个核心进行处理。

图1:NI机器视觉开发模块的例如图像卷积函数等多个图像处理函数现在能够自动分配到多个核心进行处理。

1. 在桌面上进行多核超级计算
在世界最顶级的500台超级计算机( www.top500.org )的最新排名中,有77%使用了多核处理器簇,而在2007年这个数字只有22%。这些超级计算机和您现在PC中使用的多核处理器是相同的。当然,要充分利用这些超级计算机需要编写专用的软件。幸运的是,LabVIEW的设计就已经考虑了并行处理,对多任务处理的支持已经长达10多年。

图2:LabVIEW 8.6为FPGA编程提供了强大的算法工程平台,包含了交互式用户界面、大型分析库以及到实时硬件原型上的快速移植。

图2:LabVIEW 8.6为FPGA编程提供了强大的算法工程平台,包含了交互式用户界面、大型分析库以及到实时硬件原型上的快速移植。

LabVIEW 8.6是基于现有的多核兼容性而编写的,大大提高了利用多核处理所能够获得的性能。在LabVIEW 8.6中超过1200个数学和信号处理库中的函数已经为多核系统进行了优化;此外,新型的高级缓存连续技术能够进一步提高性能。这样使得对CPU核心的使用更为高效。举例来说,相对于单核系统而言,一个运行在八核系统上的基准测试程序运行快了6.6倍。LabVIEW控制设计与仿真模块也使用了多核处理器,执行并行动态系统仿真模块快了5倍。NI机器视觉开发模块中的多个图像处理函数已经为自动将任务平分到多个核心中进行了优化。例如,图像卷积函数的基准测试在双核系统上运行快了高达15倍(见图1)。这些新型特性为您的测量或控制系统提供了超级计算机级别的性能。

2. 降低FPGA开发时间
FPGA可能是现在并行能力最高的可编程计算硬件,为测量和控制系统提供了前所未有的性能和可靠性。但是,由于FPGA的开发困难重重,许多工程师不太愿意涉足FPGA编程。甚至算法设计专家在进行定点实现的工作也觉得十分困难。LabVIEW提供了强大的算法工程平台,使用交互式用户界面、大型分析库和与实时硬件原型的快速移植特性,满足了这些挑战的需求。LabVIEW 8.6扩展了这些课题,解决了下面列出的最为常见的FPGA挑战。

1、使用传统的FPGA开发软件需要数字设计的专业知识——使用LabVIEW直观的数据流模型,您可以使用图形化LabVIEW FPGA模块,对FPGA进行编程,而不必学习硬件描述语言(HDL)的复杂内容。

2、FPGA代码在执行之前可能需要很长的编译周期——LabVIEW 8.6大大增强了FPGA开发和调试特性,您可以在无需编译的情况下,在开发计算机上对FPGA和主机接口代码进行仿真。此外,现在您可以在无需修改FPGA代码的情况下,通过仿真I/O信号为FPGA逻辑建立测试工作台,在编译之前对设计进行验证。

如果您使用NI CompactRIO硬件,就可以利用LabVIEW 8.6中全新的CompactRIO扫描模式特性,无需对FPGA进行编程,访问实时处理器的I/O。有了这个全新选项,在您的应用程序需要更高性能或是自定义行为时,可以选择“全面开启”FPGA。

3、将算法从软件原型移植到硬件实现中十分困难——由于LabVIEW可以运行在台式机平台和FPGA上,相对于使用传统工具需要重写算法而言,从台式机到硬件的过渡十分平滑。LabVIEW 8.6中FPGA上的新增定点数据类型支持和例如快速傅立叶变换(FFT)函数等高级分析知识产权(IP)使得这种过渡更加顺利。

4、使用最新的FPGA硬件更新设计需要耗费时间和资金——LabVIEW通过利用硬件抽象保护了您的开发投资,因此您可以使用全新硬件平台,例如基于Xilinx Virtex-5 FPGA的NI R系列设备和NI单板RIO板卡专用可重复配置I/O(RIO)平台,而无需对LabVIEW FPGA代码进行修改。

3. 简化Wi-Fi测量系统的实现
LabVIEW除了简化了在多核处理器和FPGA上的并行代码开发之外,还通过为新型NI Wi-Fi数据采集(DAQ)设备提供支持,简化了并行分布式测量的开发和部署。尽管很久之前LabVIEW就已经为一系列插入式和有线总线的数据采集提供了支持,包括PCI、PXI、USB、LAN和GPIB,但是在数据采集应用中无线技术的引进却慢了很多。这主要是因为对可靠、安全、高性能无线系统的编程和部署相对更为复杂。随着Wi-Fi(IEEE 802.11)在IT领域中普及以来,性能、可靠性和安全性已经大大提高了这个技术能够适用于包括数据采集在内的关键任务的可行性。

对基于Wi-Fi的LabVIEW配置和数据采集步骤和对本地插入式USB设备的信号采集是相似的。两者都使用相同的LabVIEW应用程序接口(API)连接NI-DAQmx驱动程序,从而避免了在将Wi-Fi设备加入到现有有线或插入式NI数据采集系统时所需的代码修改。在LabVIEW中进行编程的时候,您可以使用NI数据采集助手,这是一个基于配置的向导,能够帮助您定义测量,快速方便地通过Wi-Fi采集数据。LabVIEW 8.6中的数据采集助手和NI-DAQmx API使得将您的Wi-Fi系统从几十个扩展到上百个设备变得十分容易。现在您可以将LabVIEW 8.6和新型NI Wi-Fi数据采集驱动程序用于以下应用领域:

1、用于预测维护的机器监视——机器状态监视可以预防意外事故、优化机器性能,并且降低修理时间和维护成本。使用LabVIEW和Wi-Fi振动测量,可以大大减少与机器监视相关的安装和布线成本。Wi-Fi数据采集还简化了笔记本电脑和基于PC的移动现场诊断系统的建立。

2、结构状态的诊断监视——结构状态监视包括通过负载、压力和张力等主要指标对建筑和桥梁的性能进行评估。由于这些结构尺寸较大,使用有线解决方案成本高昂,并且难于实现。对于这些及其他动态结构测试应用而言,高带宽的全新NI Wi-Fi数据采集设备是使用LabVIEW在线分析,进行振动和张力测量连续数据流传送的理想选择。

3、环境质量监视——环境监视的范围包括土壤、水和空气的完整度直至与温度和湿度调节相关的服务器与易损品等重要资产的室内储藏。使用LabVIEW和Wi-Fi热电偶和电压测量,建立安装与支持简单的无线远程监督解决方案。

图3:您可以在多种应用中将新型Wi-Fi数据采集设备与LabVIEW一起使用,其中包括机器、诊断与环境监视。

图3:您可以在多种应用中将新型Wi-Fi数据采集设备与LabVIEW一起使用,其中包括机器、诊断与环境监视。

4. LabVIEW 8.6中的其他新特性
除了继续引进多核处理器、FPGA和Wi-Fi测量等最新并行技术之外,LabVIEW 8.6还包括了为长期老用户专门设计的新增特性和重要改进。一个十分显著的改变是通过LabVIEW平台DVD套件所带来的更好的用户体验,它大大简化了LabVIEW开发系统、附加模块和工具包以及NI兼容设备驱动程序的安装。在单一的对话框中,您可以安装分布在多张DVD上的软件,并且尽可能少地更换媒介。您还可以对DVD上所包含的您暂时并不拥有的软件进行30天的评估。

LabVIEW 8.6还包括了新增开发特性,可以提高工作效率,其中包括全新的程序框图整理工具,只需要单击鼠标,就可以按照LabVIEW风格指南中所给出的编程建议对程序框图进行大小改变和重新排列。我们知道LabVIEW选板随着LabVIEW平台的发展,变得越来越复杂,LabVIEW 8.6也引进了快速放置功能,您可以使用可预测方式进行选择,对前面板和程序框图对象进行查找和放置。

世界是并行的,工程师和科学家必须能够基于可响应的软件,开发测量与自动化系统。LabVIEW 8.6可以充分利用多核处理器、FPGA以及Wi-Fi数据采集设备,它提供了由其自身图形化编程平台所带来的相同优点——无论何如复杂都可以利用最新PC技术的能力。

Michael Neal
Michael Neal是一位LabVIEW产品经理。他获取了德克萨斯大学奥斯汀分校的结构工程学士学位和生物医学工程硕士学位。

Gerardo Garcia
Gerardo Garcia是一位LabVIEW实时与工业控制的部门经理。他获得了德州农机大学的电子工程学士学位。