NIDays2008多核技术下LabVIEW编程

2008-11-27 12:23:37来源: 互联网 关键字:labview  编程

      NIDays 2008 于11月18日在上海举行,课题涉及了很多方面。作为与非网特约工程师,我全程参加了主题演讲和专题讲座。本文只对专题二的LabVIEW 编程技巧下的“多核技术下LabVIEW编程的参考模式”做一些讨论。对这个问题的心得,是我在本届NIDays上最大的收获之一。

       现在我们使用的处理器很多已经是双核了,这就意味着我们写应用程序的时候得考虑怎样充分的使用双核这个特性来优化程序,同时,我们也得考虑由双核所带来的抢资源,死锁等并发问题。但正如任何一位便写过多线程代码的开发者告诉我们的那样,这是编程领域的最艰巨的任务。
LabVIEW是门图形语言,它是基于数据流的多线程的语言,所以编写多线程的程序是一件非常容易的事情,比如图(1):

 

 

        在这个程序中,独立的任务是自动进行并行的运行。从表面上看来,它的执行过程是同步的。从cpu的执行过程来看就不一定完全同步了。当cpu只是单核的情况下,cpu在执行这段程序的时候,其实是分了三个线程在执行的。也就是说,除非在cpu是3核,或是3个单核cpu的情况下,这段程序才可以真真的是“完全的”同时执行。
        很多人做的程序遇到过流水线模式,例如:数据采集,分析与记录。当只是单核的时候,程序如图(2)所示:

 

         但是当我们的CPU的core大于4时,我们就可以做成图(3)的模式了。

 

       每个Step使用的数据是由前一个Step在上一次Loop中生成的。在这个模式中,我们得注意的有一下几点:
        1)在程序开始和结束时,4各模块的处理,因为当第一次循环的时候,只有完成了step1 “采集”的工作,而下面的step2,step3,step4由于没有数据输入而没有执行。一直到第四次循环的时候,4个step才同时开始正常执行;同理,再结束循环的时候,采集结束了,可是下面的是step2,step3,step4还没有完成相应的处理。所以开头结尾的地方得进行特别的处理。
        2)当CPU没有达到4核的情况下,该程序在执行的过程中会出错,比如双核,每次只能处理其中的2个step,不能同时处理4个,在进行一次loop的时候,不能保证4个step产生新的数据,也不能保证上个loop产生的数据在这次loop都能进行处理。
        在程序中涉及到多线程的时候,得考虑到该计算机中core的数量,资源利用及程序开始和结束时相应的处理。

关键字:labview  编程

编辑:潘争 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2008/1127/article_375.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:BMW 氢能7系采用虚拟仪器技术进行测试
下一篇:LabVIEW并行化技术来提高测试的吞吐量

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
labview
编程

小广播

独家专题更多

2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved