通过LabVIEW优化多核环境下的信号处理性能

2010-07-21 23:32:39来源: NI公司

  多核处理器环境下的编程挑战

  摩尔定律问世40余年来,人们业已看到半导体芯片制造工艺水平以一种令人目眩的速度在提高,Intel微处理器的最高主频甚至超过了4G。虽然主频的提升一定程度上提高了程序运行效率,但越来越多的问题也随之出现,耗电、散热都成为阻碍设计的瓶颈所在,芯片成本也相应提高。当单独依靠提高主频已不能实现性能的高效率时,双核乃至多核成为了提高性能的唯一出路。随着AMD率先打破摩尔定律、终结频率游戏后,Intel和AMD都开始逐步推出了基于双核、四核甚至八核的处理器,工程师们逐渐投入到基于多核处理器的新型应用开发中去时,大家开始发现,借助这些新的多核处理器,并在应用开发中利用并行编程技术,可以实现最佳的性能和最大的吞吐量,大大提高应用程序的运行效率。

  然而,业界专家们也同时认识到,对于实际的编程应用,多核处理器的并行编程却是一个巨大的挑战。比尔盖茨是这样论述的:

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

  比如用C++写一个多线程的程序,程序员必须要非常熟悉 C++,了解如何将C++程序分成多个线程和并在各个线程间进行任务调度,此外还要了解 Windows 多线程的机制,熟悉 Windows API 的调用方法和MFC 的架构等等。在 C++ 上调试多线程程序,更是被很多程序员视为噩梦。

  所以,对于测试测量行业的工程师来说,在传统开发环境下要想获得多核下的效率提升意味着大量而复杂的多线程编程任务,而使得工程师脱离了自动化测试及其信号处理任务本身,于是,要想在当前的多核机器上充分利用其架构和并行运算的优势,反而成为工程师们“不可能”完成的任务。

  LabVIEW降低并行编程的复杂性,快速开发并行构架的信号处理应用

  幸运的是,NI LabVIEW图形化开发平台为我们提供了一个理想的多核处理器编程环境。作为一种并行结构的编程语言,LabVIEW能将多个并列的程序分支自动分配成多个线程并分派到各个处理核上,让一些计算量较大的数学运算或信号处理应用得以提高运行效率,并获取最佳性能。

  我们以自动化测试中最常见的多通道信号处理分析为例。由于多通道中的频率分析是一项占用处理器资源较多的操作,如果能够让程序并行地将每个通道的信号处理任务分配至多个处理器核,对于提高程序执行速度来说,就显得尤为重要。而目前,从LabVIEW编程人员的角度来看,要想获得这一原本“不可能”的技术优势,唯一需要改变的只是算法结构的细微调整,而并不需要复杂且耗时耗力的代码重建工作。

  以双通道采样为例,我们需要分别对高速数字化仪的两个通道上的数据进行快速傅立叶变换(FFT)。假设我们采用的高速数字化仪的两个通道均以100 MS/s采样率采集信号并实时分析。首先,我们来看LabVIEW中对于这一操作的传统顺序编程模型。

利用顺序执行的LabVIEW代码

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

[1] [2] [3]

关键字:LabVIEW  多核处理器  信号处理

编辑:小甘 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2010/0721/article_1356.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