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

时间:2009-06-06   来源:   网友评论:0   人气: 213 作者:

“如果用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来负责密集的并行计算。


 

文章评论