尹龙 张卫华 程实 郭冶 梁妍 牛犇
摘 要: 随着“两宽一高”采集技术的应用,原始地震勘探数据呈指数级增长,数据体越来越大,结构越来越复杂,地震资料开始进入大数据时代。文章基于海量地震数据的资料处理特点,分析HPC技术趋势,探讨并设计适合自身需求的超大规模HPC集群。
关键词: 大数据; 高性能计算; 地震数据; 两宽一高
中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2016)08-01-03
Abstract: With the application of "2W1H.jpg" >
Key words: big data; HPC; seismic data; 2W1H
0 引言
近几年来,随着勘探技术的不断进步,野外地震采集的精度在不断提高,“两宽一高”地震技术开始得到全面推广和使用。以我国某地为例,覆盖次数大于200次,高达数千次,横纵比为0.5-1,采用宽频可控震源激发,扫描频率大于5个倍频程[1]。相应地,东方地球物理公司研究院逐步完善了对高密度、宽方位数据资料配套的处理技术,形成多波多分量、三维连片、高密度宽方位数据处理等技术特色。方法有了,作为资料处理运行工具的高性能计算集群应如何设计,本文主要探讨这个问题。
1 发展难点
高性能计算系统用于解决复杂的大量数据计算,如常用于石油勘探、分子模拟、天气预报等很多科学计算领域。高性能计算通常使用并行算法,即通过并行软件将数据及计算任务分解并分发到各个计算节点上完成计算,最后将计算结果进行汇总。因此,高性能计算系统要求有高计算性能、高I/O吞吐率、大规模数据存储及高可用性等特点[2]。
2012年,东方公司在海外油气勘探市场承接的十万道级别高效采集项目就已经进入实施,数十万道甚至百万道也在不远的将来实现。随之而来的是原始地震勘探数据呈指数级增长,数据体越来越大,结构越来越复杂,地震资料数据动辄几十甚至几百TB(如图1)。地震处理软件也在不断更新升级,陆续出现基于大规模甚至超大规模地震数据开发的地震资料处理模块。然而,超大规模的数据存储,超高性能的计算要求,再加上有限的项目周期,给地震资料处理带来巨大的挑战。在进行高性能计算资源管理设计时,不但要考虑能满足PB级数据存储和吞吐能力,还要设计和构建能够处理大规模的高性能计算集群系统。
2 超算集群系统设计
2.1 CPU+GPU协同工作
协同工作是将CPU和GPU两种不同架构的处理器组成在一起,通过程序让其协同工作。为了追求通用性,CPU将其中大部分晶体管主要用于控制单元(比如分支预测等)和存储单元(Cache),只有少部分的晶体管来完成实际的运算工作(如图2),因此CPU在逻辑判断、非线性寻址等复杂逻辑运算有非常高的效率[3]。而GPU最初是为了完成图形处理,因此它的更多单元用于执行计算,这也让GPU更加适合密集型的计算任务,随着硬件技术的发展,GPU的计算能力已经远远超出了其自身图形功能,同时GPU的可编程性也让其完成浮点计算的科学研究逐渐活跃起来。从图3可以知道,在浮点计算方面GPU的计算能力已经远远优于CPU。
GPU参与的运算应用有如下特征:
⑴ 运算密集性;
⑵ 高度并行性;
⑶ 控制简单性。
从目前来看,单纯使用CPU进行大规模计算已经不再拥有吸引力,更为科学的是采用CPU+GPU协同工作,由CPU负责执行复杂的逻辑处理和事务处理,GPU负责计算密集型的大规模数据计算。这种利用GPU强大处理能力和高带宽而弥补单纯使用CPU计算时性能不足的计算方式可以进一步挖掘计算机潜在能力,在成本和性价比方面有显著的优势。
2.2 文件存储系统
文件存储系统是影响整个集群系统性能的关键因素,针对地震处理数据高密度并行读写的特点,首先需要考虑存储容量,就目前野外工区高密度采集特点,覆盖次数达上万甚至几万道,单炮的数据量可达上百MB,因此PB级容量的存储是必然选择。其次,地震资料处理软件与其他应用软件相比,特别之处在于文件I/O量巨大,尤其大规模偏移计算时需要满足各计算节点对共享存储的访问,I/O系统的性能将严重影响整个系统的性能,因此存储系统的高效访问至关重要[4]。
分布式文件系统是C/S架构的文件系统,用户数据没有直接连接到本地主机,而是存储在“集群服务器”(存储中定义了统一的命名及Cluster概念)上,由“集群服务器”为整个计算系统提供I/O服务。分布式文件系统包括主控服务器、数据服务器及客户端[5](如图4)。
目前许多大型计算机公司如Google、IBM及科研院校都正致力于分布式存储的研究开发和使用,从而形成了多种模式的分布式文件系统,包括GFS(googleFS)、Lustre、GPFS等等。随着大数据时代的到来,分布式文件系统受到了更多的欢迎。对于高性能计算而言,分布式存储有以下几方面优点。