新闻中心

EEPW首页 > 测试测量 > 设计应用 > LabVIEW驰骋多核技术时代

LabVIEW驰骋多核技术时代

作者:周斌 NI技术市场工程师时间:2008-09-19来源:电子产品世界收藏

  任务并行化(Task Parallelism)

本文引用地址:http://www.eepw.com.cn/article/88205.htm

  将整个程序分成多个线程来并发运行,是的一个基本理念,那么通常一个程序都会由几个子任务组成,例如在某个测试测量程序中,就可以分为模拟采集和数字输出两个任务,那么如果我们将这些独立的任务并发地执行在处理器中,那么就自动提高了运行的效率。这种将独立的几个任务在程序中并发执行的方法,就叫做任务并行化。

  对于任务并行化,如何合理地去实现任务分配是需要解决的问题。首先,我们可以将本身就互相独立的任务分配在不同线程中,如上例所提到的模拟采集与数字输出任务,之间就没有任何的数据连接,因此在中我们就可以并行地将代码放在程序框图中,不需要添加任何其他代码,如图5所示。

 


图5 对独立任务自动实现“任务并行化”

  此外,编程中常见的生产者—消费者循环也是一种任务并行化,在下我们可以将生产者(读取数据)与消费者(分析数据)分成并行的两个任务,任务之间的数据交互可以使用队列结构(Queue)来实现,如图6所示。

 


图6 生产者—消费者模型实现任务并行

  数据并行化(Data Parallelism)

  除了可以将程序任务进行并行化之外,对于一些海量数据的处理分析,我们还可以将数据分成几个可并行操作的小数据集,然后分别在各个核上实现,最后将结果整合起来作为整体数据集的处理分析结果,这种方式称为数据并行化。

  如图7(a)所示,一个大的数据集仅仅在一个核上进行处理和运算,当核1在处理数据时,其它的三个CPU核都处在闲置状态,整个系统的运行效率很低。

  那么,使用了数据并行化之后,如图7(b),之前的大数据集被分割成4个小数据集,并将它们在各自的核上进行处理运算,最终再将各自的运算结果整合起来作为大数据集的处理结果。经过了数据并行化之后,整个系统的运算效率有了直线的提升。

 


(a)

(b)
图7 数据并行化

  与“任务并行化”类似,在LabVIEW下实现“数据并行化”也相当的直观与方便,图8就显示了一个矩阵相乘的代码,程序中将两个大矩阵各自分割成小矩阵进行相乘,最 后再整合起来,仅仅这样一个简单的改变就可以在一个双核处理器上得到0.9倍的性能提高。

 


图8  LabVIEW矩阵相乘的数据并行化

  流水线式(Pipeline)

  流水线,顾名思义,就是指将一系列的任务分割成固定的几个步骤,然后按照装配线的方式来执行。

  我们以一个最简单的汽车装配线为例,一辆车的装配完成需要3个步骤:底盘安装、零件安装以及上漆。如果每个步骤都需要花费1个小时的话,那么如果一次就装配一辆车的话,我们需要花3个小时来完成(图9a)。

  那么,如果我们换一种思路,分别对每个步骤设立一个工作站(例如工作站1就专门负责底盘安装,以此类推,如图9b)。这样一来,我们看到,当一辆车在上漆时,另外一辆车可能正在进行底盘安装。通过这种方式,我们成功实现了每一个小时就能完成一辆车的装配,是之前装配速度的3倍。这个例子中所说的工作站,其实就可以算作是CPU各个核,那么通过这种流水线的操作方式,就可以充分利用技术,大大提高整个程序的运行速率。        

 


(a)

(b)
图9  流水线式编程思路

  而在LabVIEW下实现流水线式编程也是非常方便,图10就是一个最简单的4个步骤的流水线式代码,在一个For循环中,并行地执行4个处理步骤,系统将这并行的4个步骤放在不同的核上运行,从而起到“工作站”的作用,实现了流水线式的编程。

 


图10  LabVIEW下实现流水线式编程

  综上所述,任务并行化、数据并行化以及流水线式是的三种最常用的方式,相对于以往的顺序结构,这些编程方式可以在处理器上发挥更强大的作用,而在LabVIEW下可以很方便地实现这些编程方式,从而帮助工程师们从多核处理器技术中得益,提升系统的性能和运算速度。

结语

  随着新一代处理器技术的日益普遍,工程师与开发人员的一个必要考虑因素就是他们使用的软件如何从多核系统中获得潜在的性能提升。LabVIEW作为天生并行的图形化编程环境,可以自动将程序多线程化,避免了开发人员繁琐的底层实现,将主要精力投入在高层的编程模式上;而作为的三种常用模式(任务并行化、数据并行化以及流水线式),在LabVIEW下也都能高效地予以实现。因此,不容置疑的是,随着具有更多核的处理器不断涌现,LabVIEW将帮助开发人员真正迈入并行,驰骋多核技术时代!

参考文献:

  1.  刘全周,汪看华,张宏伟,基于LabVIEW和PXI的汽车数字仪表测控系统,电子产品世界,2008.2


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭