GPU计算:石油勘探领域里的旅程碑

2009-5-14 作者: 洪钊峰 来源: IT168

关键字: GPU CPU CPPC 

  “如果用GPU/CPU协同并行计算(CPPC),你可以把原来超级计算机要做的事浓缩到一个普通的台式工作站或机架服务器中去。对于地震资料处理领域,这无疑是一种革命性的技术!”

  ——北京吉星吉达科技有限公司总经理刘钦

  在石油和天然气勘探开发领域,地震资料处理是非常重要的关键环节。

  人们通过人工放炮方式产生地震波,然后将地下不同地质层反射回来的地震波信号,通过地面检波器收集后,利用大型计算机通过多套专业处理软件和一套完整的叠前时间偏移、叠前深度偏移软件系统,进行资料处理,从而得到地下的构造以及成像,便于勘探专家进行下一步的分析和解释,掌握地下的油气构造,为石油钻井提供更加可靠的勘探数据。要知道,石油钻井井位的确定很关键,定错一个井位,损失将十分惨重。

  由于叠前时间偏移、叠前深度偏移动辄需要处理数以TB的海量数据,因此对计算设备的性能提出非常高的要求。过去人们往往在服务器集群等大规模并行计算机上运行Paradigm、CGG、Omega等需要上百万美元的专业处理软件来运算这些海量数据,但北京吉星吉达科技有限公司总经理刘星和他的团队却成功地研制出了“油气勘探地震偏移GPU/CPU协同并行计算软硬件系统”,将叠前偏移的计算速度提高了几十倍甚至上百倍,而系统构建成本却不到传统并行机的十分之一。
  
  挑战

  在地震勘探资料处理中,根据运算量的大小可以把处理技术分为两大类:一类是目前CPU计算机可以满足的普通处理技术,如解编、预处理、反褶积、静校正、DMO、叠加、叠后偏移等;还有一类则是目前计算机不能完全满足的需要大量运算的处理技术,如叠前时间偏移、叠前深度偏移、波动方程偏移等。后者往往成为目前地震资料处理过程中的“瓶颈”所在。

  以叠前时间偏移为例,即便是用目前工业界最成熟的Kirchhoff积分法,每输出一个地震道,就是一次海量运算。以1毫秒采样,6秒数据为例,一个地震道的输出需要至少1000万道甚至更多(偏移孔径决定)的输入道,每一个点要做两次均方根运算以及两次加法运算,振幅补偿两次乘法运算。如此计算下来,实现一道偏移需要1000000x6000×2×(平方+加法+乘法)次数学运算,计算量和需要处理的数据量都极其巨大!

  目前,人们往往使用大规模的X86服务器集群来进行叠前偏移处理,其原理是将数据先分配到各个CPU核上,然后由各个CPU核单独进行计算,最后将结果汇总输出。这种做法消耗了大量的时间、电力和维护费用。而且,随着人们对石油勘探地震资料处理的周期要求越来越短,精度要求越来越高,PC服务器集群的规模越做越大,在系统构建成本、数据中心机房空间、内存和I/O带宽、功耗散热和电力限制、可管理性、编程简易性、扩展性、管理维护费用等方面都面临着巨大的挑战。

  “目前普遍采用的大规模PC服务器集群实现并行计算的模式,是用‘增加串行硬件的个数’实现并行计算,提高速度靠的是机群的节点数的增加!事实上,这是一种因计算机技术限制不得已而为之的方法。” 在石油勘探领域有着26年从业经历的刘钦表示:“如果能将GPU\CPU的协同并行计算(CPPC)的模式用到地震勘探资料处理中,将实现用‘并行的硬件’实现并行计算,速度可以成数量级的提高!许多原来无法解决的问题现在可以用协同并行计算(CPPC)来轻松实现,应用这项技术可以使地震资料处理中的许多矛盾迎刃而解。”

  方案

  2008年,经过长期努力,中国科学院地质与地球物理研究所和北京吉星吉达科技有限公司联合研发成功了“油气勘探地震偏移GPU/CPU协同并行计算系统”——在硬件层面将GPU和CPU两种不同架构的处理器结合在一起,组成硬件上的协同并行模式,同时在应用程序编写上实现GPU和CPU的协同配合的并行计算(CPPC)。具体来说说,协同并行计算(CPPC)机就是由CPU负责执行顺序型的代码,如操作系统、数据库等应用,而由GPU来负责密集的并行计算。

  作为该系统的硬件平台,项目团队开发成功一款GK-II型GPU/CPU协同并行计算机,是在一个24U高的机柜中安装了6台Nvidia Tesla S1070 1U机架式服务器和6台配置两颗2.5GHz四核CPU的2U机架式PC服务器,运算能力达到24万亿次每秒,总体功耗是7000瓦特。

  同时,项目组借助Nvidia CUDA开发编程环境的支持,在中科院地质与地球物理所刘洪研究员偏移算法的基础上,按照GPU原理及协同并行计算(CPPC)的思路,针对偏移算法中不同阶段的运算特点,采用不同的软件编写策略,在程序的每一个环节最大限度实现不同处理器协同计算,成功编写了“非对称走时Kirchhoff叠前时间偏移算法”的协同并行计算(CPPC)软件。

  2008年下半年,中科院地质与地球物理研究所对系统进行了完成740平方公里三维叠前时间偏移处理(输入数据768GB,输出全部936条测线,4毫秒采样,6秒道长)的测试。测试结果表明,在GK-II上运行“非对称走时Kirchhoff叠前时间偏移软件”处理上述数据,仅用了55小时2分钟,不到2.5天,而一套由32个双路单核刀片服务器构成的集群,使用某商业软件,却花费了3307小时12分钟,约137天。

  除了计算速度的对比测试,项目组还进行了资料处理效果的测试,毕竟,处理效果的后坏对于地震勘探来说更为重要。项目组使用该系统处理了大庆、河南、胜利、华北、吉林、新疆、中原、辽河等13块、总面积超过50000平方公里,数据量约11.6TB的三维地震数据。测试结果表明该系统与常用商业软件的整体效果相当,且对介质横向速度变化大、倾角陡的地区成像效果改善明显,优于目前的商用软件。

  2008年10月,中石油勘探生产分公司组织召开“GPU石油勘探应用研讨会”,会上将此项技术定名为“GPU/CPU协同并行计算”(简称“CPPC”技术),会后制作了不同配置的8台样机并进行了测试验证。经过多方测试,结果表明:装配了一个GPU的服务器的效率相当于50-200台单核CPU节点的效率(视硬件配置不同而有差别),硬件成本不到目前普遍应用的大规模计算机群的十分之一,电费节省95%以上,占地空间省90%以上。如果考虑机房、空调、UPS、维护等因素,运营成本还会大幅度降低。同时,由于采用了精度更高的算法,地震资料处理结果的地质效果明显提高。

  影响

  相对于传统的服务器集群,相同规模的GPU超级计算机在性价比、占地空间、功耗等方面占据非常明显的优势。目前,一些国内外企业和科研机构都在使用CUDA进行协同并行计算软件的研究开发工作,而在地震资料的叠前偏移处理方面,北京吉达吉星科技有限公司无疑已经向前走了一大步。

  2009年3月,两套分别由12个和6个Nvidia Tesla S1070 GPU计算节点与相应CPU服务器节点构成的GK-II协同并行计算机已经安装在了大庆油田研究院和胜利油田物探院,即将投入高密度三维处理的实际生产应用环境。

  刘钦认为,“GPU/CPU协同并行计算(CPPC)带给我们的是一场高性能计算的革命,可以预见,在不久的将来,GPU在地球物理领域将占有重要的地位,就像当年PC服务器集群取代大型机一样,现在广泛应用的大规模CPU多节点并行模式,有被GPU/CPU协同并行模式取代的趋势。”

  由于处理速度的大幅提高,过去许多不可能进行的计算——如在现场处理中实现叠前偏移计算、快速的叠前深度偏移、大运算量的波动方程偏移技术的应用等,将成为可能。刘钦表示,北京吉达吉星科技有限公司在成功实现了叠前时间偏移软件开始之后,已经开始研制kirchhoff深度偏移、波动方程偏移和一系列交互辅助工具。

  可见,GPU/CPU协同并行计算(CPPC)机将成为地球物理服务公司的新式武器,不仅可以实现低成本新建或改造大型超级计算中心,而且可以部署到散热、供电、运维条件有限的特殊应用场合,如野外现场、大处理中心的分站、勘探船,从而可以大大提高地震资料处理的效率,缩短处理周期。



责任编辑:熊东旭