- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
虚拟仪器技术的进展及如何提升并行处理能力
PCI Express技术提高了总线带宽和数据吞吐率,使得工程师可以获得原始数据,并通过专业的分析工具拿到可靠的测试结果。不过近年的数据量快速增长,导致对这些数据进行处理和分析成为摆在工程师们面前的又一个问题。
多核处理器技术能够提高传统的测试算法的运行速度,Intel已经许诺了在2011年会推出80个芯核的CPU。但是不同于以往的单核,为了实现性能的提高,开发人员需要在应用软件里配置线程。从图7中可以看到,即使是在四核的处理器上,如果其应用只是单线程的话,操作系统仍旧会将所有的任务分配到其中的一个核上运行。可见,为了实现在多核处理器上程序性能的提升,就必须将你的应用程序分成多个线程,再由OS协调分配在不同的核上运行,这样才能最大限度的利用多核处理器并行的优势来提升性能。
图7:使用多线程编程才能最大限度地利用多核处理器的性能。
然而,这对于许多习惯于开发单线程应用的开发者来说都是一个极大的挑战。如果工程师使用的是基于文本的编程语言,如C语言,那么在进行多线程应用软件的编写时,需要专门的语义创建和管理线程,并且在线程安全方式下进行数据的传送。
而NI LabVIEW,就非常适合于创建并行的多线程应用。首先,相比文本编程语言的至上而下的顺序结构,LabVIEW本身就是一种并行的编程结构;其次,早在LabVIEW 5.0时LabVIEW就已经支持多线程,在LabVIEW程序编写完毕后,LabVIEW编译器可以自动地识别线程并创建线程到不同的任务和循环上,再由OS分配到不同的核上运行(图8)。而最新的LabVIEW 8.5更针对多核技术进行了全面的支持;此外,在实时操作系统中,用户还可以自己分配特定的线程在特定的核上运行,如图9所示。
图8:使用LabVIEW方便实现多线程编程。
图9:LabVIEW 8.5允许用户手动分配线程在指定的核上运行。
而且,随着更多的核的运用,LabVIEW可以自动创建更多的线程来自动提升程序的性能。简单来说,就是当你把测试系统的控制器升级为更多核的处理器时,不需要对程序做任何修改,测试系统就能自动达到更高的处理性能。
因此说,多核处理器使用了并行拓扑架构可以提高处理能力,但利用真正的多线程编程语言,如LabVIEW,才可以轻松实现运算性能的真正提高。