王永胜
摘要:在计算机技术领域中,CPU和GPU两者是相辅相成的,在CPU和GPU发展过程中遇到了各种瓶颈,要相对该种瓶颈进行解决,就要将两者相互结合进行实现,并且关于CPU和GPU两者相互结合的方案一直被相关人员所重视和研究。基于此,该文就对CPU和GPU两者的联合异构计算系统进行分析,两者的结合能够有效提高处理器的性能,并且还能够提高处理器的性价比,促进计算机处理器能够迈向全新的台阶,之后对CPU+GPU异构计算系统在石油勘探中的应用进行了研究。
关键词:CPU;GPU;异构计算机系统;石油勘探
中图分类号:TP311 文献标识码:A文章编号:1009-3044(2017)29-0250-02
在大规模工程及科学技术不断发展的过程中,CPU已经不能满足不断增加的计算需求,就算是多核CPU也无法满足。并且因为CPU自身体系结构的因素,其计算数量不能够增加,并且大部分的资源被占用,导致CPU实际可用的计算单位有限。为了能够有效满足计算需求,大部分公司及研究机构都逐渐应用具有较高性能的超级计算机和集群系统,但是因为设备较高,并且维护成本较高,部分芯片和性能并不能够满足CPU。GPU属于图形处理器,其和CPU相比,在存储器带宽和处理能力方面具有优势。为了有效解决计算密集型方面的问题,GPU比CPU优势大,但是CPU和GPU硬件结构不同,不能够只是靠GPU完成计算,所以可以充分使用GPU和CPU两者的计算能力,创建超级计算机,有效提高计算处理性能,降低处理能耗。
1 CPU+GPU异构计算的含义和意义
1.1 CPU+GPU异构计算的含义
CPU+GPU异构并行处理的主要任务就是实现图形的实时渲染,在任务处理过程中,CPU的主要目的就是负责具有较强逻辑性的事务计算,GPU的主要目的就是负责具有较高计算密度的图形渲染。为了能够有效满足事务计算的需求,CPU设计的主要目的就是通过执行单元降低延迟,以此得到指令和数据,所以就是使用较为复杂的分支预测及控制逻辑和大量的缓存,从而有效提高任务的处理效率。GPU要在制定过程中实现较高的存储器带宽和较强的计算能力,所以就要通过较多的执行单元对较为简单的线程进行执行,在线程等待数据的时候,能够对另外在就绪中等待计算线程进行切换。简单来说,CPU对于迟延较为敏感,GPU重视对数据吞吐量的提高。从而表示,CPU+GPU 异构计算能够充分将CPU和GPU两者的优势发挥出来,从而能够最大限度地使用计算能力,使其能够在任务执行过程中具有较高的运算能力[1]。
1.2 CPU+GPU异构计算的意义
CPU+GPU異构设计在各大服务器中被广泛应用,我国品牌服务器市场最先发布了桌面超级计算机“倚天”,其具有较快的运算速度,并且价格较为便宜,主要是因为使用了CPU+GPU异构机构。“倚天”中具有异构设计的高性能,并且还有其他特点,比如数量较多的峰值运算性能,GPU的不断发展能够有效满足并行数值计算的特点,并且其还具有较为强大的并行处理能力和可编程流水线,从而能够提高在面对单指令多数据流中的性能。GPU的并行运算能力能够通过对CPU和GPU两者的对比看出来,CPU因为架构因素,一直都是提高制程工艺及主频实现提高计算能力,但是此种方法会出现多种问题,GPU的性能缺失不断提高的[2]。
集群所要面临的挑战主要是因为性价比,相关研究表示,高性能集群计算市场的75%需求,但是以上规模的集群系统价格不同。本文所说的“倚天”计算峰值虽然每秒四万一次,但是成本却只有其他计算系统的五分之一。此种性价比优势,使CPU+GPU异构计算机系统在使用过程中降低了使用成本。主要包括以下内容:机房面积较小,耗电较少,噪音较低。从此方面分析,满足今后绿色IT的发展趋势。最后,其还能够为用户使用过程中提供灵活性,因为体积和普通计算机相同,价格便宜实惠,导致用户能够更加方便的对其进行部署,所以有效解决了传统用户在使用过程中单一并且排队的问题,有效提高了用户在使用过程中的效率[3]。
2 CPU+GPU异构的计算模型
本文提出的CPU+GPU异构平台计算模型是面向开发者及面向用户构成的,其主要包括应用层、平台层及硬件层,详见图1:
系统模型之所以面向程序开发人员,其将硬件设备层作为基础,对平台层任务数据的划分方式进行了分析,并且谈论了多子任务中数据的调度策略和处理过程中的方式,接口模型主要是面向具有并行加速的程序调用方,其将硬件设备层和平台作为基础,对用户接口设计的思想及实现进行了分析。系统模型将CPU+GPU的传统计算模型中的部分特点进行了保存,通过CPU负责部分串行程序处理、多任务调度和逻辑控制,在处理任务过程中,系统模型能够使部分任务通过CPU+GPU两者并行完成,有效创新了传统模型中单独使用GPU或者CPU实现任务处理,从而能够充分使用已经具有的计算资源,以多任务环境为基础实现数据调度,设计全新的数据调度分配架构,对执行代价计算调度进行合理定义,根据不同的任务属性提出了不同的数据调度策略和机制,从而实现任务在CPU和GPU端的动态划分,以此解决在数据处理过程中两者的空闲等待问题,并且还对大型任务的大规模数据及划分进行描述,有效解决了现有资源中大规模数据处理的问题[4]。
2.1 任务数据的划分
任务数据划分的方法能够支持不同规模的典型应用,通过需要处理的方法对功能分解成为多个子功能,组合顺序和算法具有密切的关系,本文定义了可回写性及可拆性。可回写性对子任务在处理之后的数据是否能够写回到处理之前的原始数据块进行描述,对结果的正确性不会影响。可拆性对任务数据是否能够在不同存储空间存放,并且同时运行进行描述。
在任务中的数据处理相互独立,数据没有耦合关系,任务能够拆分到GPU和CPU两端进行处理,在处理过程中两者不会彼此影响,此种任务为可拆任务。如果任务之间具有耦合关系,并且数据不能够拆分,如果将此任务拆分成为不能够执行,那么此任务就是不可拆任务。对不同子任务的处理数量进行确定,假如通过应用算法能够将任务进行分解,那么在这些任务处理过程中,不仅要对数据的通信及处理开销进行处理,还要对不同子任务添加的系统开销进行处理,比如内核函数、线程的创建等。所以就要提高子任务的规模和能够处理的数据量,从而降低系统的额外开销,以此有效提高整体的执行效率[5-6]。endprint
2.2 任务评价
为了能够有效解决数据在多任务背景下CPU及GPU的调度分配问题,所以就对任务评价模块进行划分,其提出了任务评价机制,通过对任务属性进行分析,并且对任务执行代价进行预测,从而能够为数据的调度处理提供有效的数据分配及调度策略。基于多任务背景,其对独立任务处理开销及任务之间的通信开销等进行了全面的考虑,从而使整体执行效率有进一步的提高。
任务评价模块中要通过对自任务属性进行分析,比如依赖性及可拆性,模块主要对使用哪种方式对优秀执行者进行任务调度,CPU、GPU两者可以成为任务执行者,因为GPU计算能力及CPU要高,任务执行要通过GPU实现,但是如果任务计算量较小,其数据通信量就较大,GPU计算能力不能够解决数据通信的性能消耗,所以这个时候就要通过CPU执行,不需要GPU的参与[7-8]。
3 CPU+GPU异构计算系统的应用
石油勘查能力和计算方式具有密切的关系,目前在油气勘探过程中最精准的方式就是地震波法,其是利用人工地震波收集地下深处不同岩层的反射波,之后将反射波转变成为数据,并且利用计算处理模式对勘探区域的地质构造进行模拟,使用此种方式能够精确地找到石油就天然气的储藏位置。因为地震波法收集到的数据都是通过TB计算,在海洋勘探时候的数据容量就超过PB容量,所以就要通过具有较高性能的计算机对大量的数据在短时间内进行处理,从而提高勘探的效率[9]。
从软件方法分析,并行编程及算法的研究也是石油行业将来发展的方向。在多向量处理并行计算机出现之后,不仅要对任务级大粒度并行进行全面的考虑,还要对出处理机中细粒度并行算法进行全面的考虑。在现社会中,处理器和纳米技术在不断的发展,单位面积方面的晶体管已经基本饱和,处理器的提高速度也在不断的降低,基于AMD的PUU发展方向为多核多线程,但是因为具有固定的设计传承,促进高性能计算已经无法满足石油行业大规模计算的需求。之后,多核心少缓存向量处理器被研发,比如GPU,其能够提高晶体管计算效率,将其和CPU相互结合,是最为成功的同一设备架构。
从硬件发展方面分析,应用到石油行业中会在短时間内将计算的性能体现处理,比如处理器更新、体系结构、网络环境等发展。在处理器不断更新的过程中,石油勘探中的技术都不断升级,将传统计算机无法承载的方式都推广到实际生产中,比如全波形反演及逆时偏移。并且,高性能计算机的体系结构也在发生着变化,全新的向量处理器和中央处理器能够共同实现并行计算,比如CPU+GPU体系机构的MIC处理器。和传统PC集群体系结构进行对比,全新的体系结构具有较高的计算效率,较少的资源消耗及较少的占地空间,在石油勘探中,部分计算密集型的方式都是通过和此种结构相互结合在工业化产业中使用的。在石油行业不断发展过程中,其和网络技术及并行文件系统的发展具有密切的联系,并且在高性能计算机不断发展的过程中,其能够有效解决计算效率中的瓶颈问题及处理器速度进一步提高的问题[10]。
4 结束语
CPU+GPU异构计算系统的高性能计算机在处理器自身不断发展过程中发展的时代已经过去,处理器由单核心处理能力朝着多核心方向发展,系统架构朝着多核心异构方向发展已经在工业工作中融入。相信,以云计算为基础的服务、系统及资源调度等能够为石油勘查事业提供资源使用能力,为石油勘查的高性能计算提供基础。
参考文献:
[1] 阳王东, 李肯立. 基于HYB格式稀疏矩阵与向量乘在CPU+GPU异构系统中的实现与优化[J]. 计算机工程与科学, 2016, 38(2):202-209.
[2] 石林. 关于CPU+GPU异构计算模式程序开发中编程方法研究[J]. 科学大众:科学教育, 2014(10):149-149.
[3] 李敏. 高性能并行计算机的发展及其在石油勘探中的应用[J]. 科技导报, 2014, 32(2):80-83.
[4] 阳王东, 李肯立. 准对角矩阵与向量相乘在CPU+GPU异构集群上的实现与优化[J]. 小型微型计算机系统, 2015, 36(7):1659-1664.
[5] 成思远. 异构(CPU-GPU)计算机系统性能评测与优化技术研究[D]. 长沙: 国防科学技术大学, 2011.
[6] 冯颖, 袁庆华, 沈健炜. 基于CPU+GPU异构计算的编程方法研究[J]. 通信技术, 2011, 44(2):141-143.
[7] 蔡镇河, 张旭, 栾江霞. CPU+GPU异构模式下并行计算效率研究[J]. 计算机与现代化, 2012(5):185-188.
[8] 肖汉. 基于CPU+GPU的影像匹配高效能异构并行计算研究[D]. 武汉: 武汉大学, 2011.
[9] 孟晨, 曹宗雁, 王龙,等. 基于Charm++运行时环境的异构计算应用容错研究[J]. 计算机工程与应用, 2016, 52(13):1-7.
[10] 甘新标. 面向众核GPU的编程模型及编译优化关键技术研究[D]. 长沙: 国防科学技术大学, 2012.endprint