如何利用多核PC技术进行图形编程?
扫描二维码
随时随地手机看文章
在PC行业,多核处理正在引起相当大的反响,很大程度上是因为Intel和 AMD两家公司都各自发布了其首款多核处理器。这些首款多核处理器都是在一个物理处理器中包含有两个核,或者计算引擎,因此命名为双核处理器。具有两个以上核的处理器也即将面市。
多核与多处理器
多处理器系统多年前已经出现,它与多核系统的主要区别是多核系统只有一个物理处理器,这个物理处理器包含两个或更多个核,而多处理器系统有两个或更多个物理处理器。多核系统也共享计算资源,在多处理器系统中这些资源常常是被复制的,如L2高速缓存和前端总线。多核系统与多处理器系统性能相似,但成本常常要低得多,原因是多核处理器比多个相同的单个处理器价格要低,也不需要支持多个处理器的母板,如多处理器插头。
多任务
像多处理器系统一样,多核系统能同时执行多个计算任务。这一点在如Windows XP多任务操作系统(OS)中很有利,此时可以同时运行多个应用程序。多任务指OS在两个任务间快速切换的能力,表面上看,这些任务同时执行。当运行在多核系统上时,多任务OS能真正同时执行多个任务,而不只是表面上看起来是。例如,在双核系统上,两个应用——如National Instruments LabVIEW 和Microsoft Excel,各自都能同时访问一个独立的处理器核,因此,提高了如进行数据记录的应用程序的整体性能。
图1:双核系统可实现多任务操作系统,如Windows XP,真正同时执行两个任务。
多线程
多线程将多任务思想延伸到应用程序,所以可以将一个单独应用程序内的具体操作分成具体线程,各线程都能并行运行。这样,OS就不仅能在不同应用程序间,也可在一个应用程序的每个线程间划分处理时间。在多线程NI LabVIEW程序中,例如一个应用程序可分为3个线程:1个用户接口线程、1个数据采集线程和1个分析线程。可以给这些线程分配优先权,各自独立运行。因此,在多线程应用程序中,多任务能与正在其他系统上运行的其他应用程序一起并行进行。
采用多线程的应用优点很多,包括CPU使用效率更高,系统可靠性更高,多核系统的性能得到提高。
更高效地使用CPU
在很多应用程序中,资源可以同时调用,如在仪器中。完成这种调用常常需要花费很长时间。在单线程应用中,同步调用有效阻止或防止了应用程序内的任何其他任务的执行,直到该调用完成。多线程避免了这种情况的发生。当一个线程出现同步调用时,其他不依赖此调用的程序部分在其他线程下运行。应用程序继续执行,而不是等到此同步调用完成后再继续执行。这样,如果应用程序的任何一个线程准备运行,则CPU都可运行该线程,所以,多线程应用最大程度提高了CPU效率。
系统可靠性更高
通过将应用程序分成不同的执行线程,可以避免次要操作影响最重要操作的执行。最常见的例子是用户接口可能对时间更关键的操作的影响。屏幕更新或响应用户事件经常会降低应用程序的执行速度。给用户接口线程赋予的优先权比其他对时间要求更关键的操作事件的优先权要低些,就能保证用户接口操作不会阻止CPU执行更重要的操作,如采集数据或过程控制。
提高多核系统的性能
多线程最诱人的优点之一是可以利用多核系统完备的计算能力。在几个线程都同时准备运行的多线程应用程序中,每个核可以运行不同的线程,应用程序实现了真正的并行任务执行。这样不仅增强了前面讨论的CPU使用效率更高和系统可靠性更高这两个优点,而且使性能得到彻底提高。
图形编程的优点
根据定义,虚拟仪器有助于利用PC业的每一个创新。多核处理也一样。开发能充分利用多核处理器计算能力的软件时,就需要本质上具备并行性的开发工具。由于其顺序特征,如C 和C++这种基于文本的编程语言就要求调用函数,有计划地产生和管理线程。同时,由于文本语言的顺序的、一行接一行的特点,如何使不同代码部分的并行运行可视化常常很困难。
相比之下,像LabVIEW一类的图形编程环境可方便地表示并行过程,这是因为数据流本来就是并行的。在图形环境下并行代码的执行进行可视化更容易,在这种环境下,图形代码的两个并行执行路径并行放置。LabVIEW代码也天生就是多线程。LabVIEW能识别程序中的多线程机会,由执行系统处理多线程实现和通信。例如,两个没有任何依赖关系而运行的独立环在各自的线程内自动执行。当在多核系统中执行LabVIEW代码时,多线程在多个处理器核上运行,而不需用户进行任何干预。
图2: LabVIEW中图形编程的并行特点自动实现多线程,这些多线程在多核处理器上运行,而不需用户进行任何干预。
PXI -A多核平台
PXI是一种容易实现多核处理的平台,是一个开放的、多销售商的、基于PC的平台,用于测试、测量和控制。可以通过任何的双核台式电脑或掌上电脑远程控制PXI系统,美国国家仪器公司(NI)已经发布了业界首款嵌入式、机架固定的双核PXI控制器,NI的PXI-8105嵌入式控制器采用2.0 GHz Intel 酷睿双核处理器T2500,NI的PXI-8351机架固定控制器采用3.0 GHz Intel奔腾D处理器830。LabVIEW 8的基准证明了在NI PXI-8105和单核PXI-8196(2.0 GHz Intel奔腾M 处理器760)之间,对于单线程应用程序,性能提高达25%,而两者的处理器时钟速率相等。这一提高归功于这两代Intel架构处理器和芯片组之间的无数改进的结果。从多线程应用基准可以看出,性能的提高是来自PXI-8105处理器是双核这一事实,与NI PXI-8196嵌入式控制器相比,性能提高达100%。
图3: 双核PXI系统对多线程应用程序性能提高达100%。
为多核系统选择LabVIEW
在多任务环境和多线程应用程序中,多核系统都有许多优势。因为图形数据流本质上为并行的,而LabVIEW代码本质上为多线程,LabVIEW在利用诸如PXI的多核系统开发应用程序中已经显示,并且仍将继续显示出相当大的优势。