一种基于多核处理器的地震数据快速访问方法

文档序号:10724825阅读:412来源:国知局
一种基于多核处理器的地震数据快速访问方法
【专利摘要】本发明提供了一种基于多核处理器的地震数据快速访问方法。所述方法基于多核处理器并行计算与linux系统内存映射文件技术原理,通过在多核处理器硬件环境中实施并行内存映射任务分配及划分,实现地震数据的快速访问存取。并且,该方法针对数据规模扩大的情况拥有良好的扩展性,对多核处理器计算机环境下的大数据处理领域的数据快速存取问题具有一定的借鉴作用,在石油地震勘探资料海量数据处理方面具有很好的应用前景。
【专利说明】
一种基于多核处理器的地震数据快速访问方法
技术领域
[0001 ]本发明涉及地质勘探技术领域,更具体地讲,涉及一种海量地震数据的快速访问 方法。
【背景技术】
[0002] 当前的石油天然气地震勘探工作中,由于可控震源高效采集技术的推广应用和高 密度三维地震勘探的迅速发展,地震观测采样精度越高,采集的数据越大。采集获得的数据 量呈几何指数增长,从2~3TB到50TB甚至更大。如此庞大的规模对地震数据的快速访问存 取处理技术提出了新的要求。虽然通过高性能计算机集群等硬件的投入,多核计算机并行 处理已经可以完成许多大规模计算任务。然而在海量地震数据的处理运算中,存储器与辅 助存储器间的数据访问存取往往会成为制约应用程序运行速度的瓶颈,从而不能很好的发 挥高性能计算机多核处理器的优越硬件性能。这就需要一种能够发挥多核处理器并行计算 性能,突破存储器与辅助存储器间的数据存取瓶颈的方法。

【发明内容】

[0003] 针对现有技术中存在的不足,本发明的目的之一在于解决上述现有技术中存在的 一个或多个问题。例如,本发明的目的之一在于提出一种基于多核处理器的地震数据快速 访问方法,以实现地震数据的高效快速访问存取。
[0004] 为了实现上述目的,本发明提供了一种基于多核处理器的地震数据快速访问方 法。所述方法通过在多核处理器硬件环境中实施并行内存映射任务分配及划分,实现地震 数据的快速访问存取,所述方法包括以下步骤:
[0005] A,实时获取访问存取的地震数据文件大小,并确定映射视图大小;确定拟使用运 行的线程数,所述线程数不大于计算机处理器CPU的核数η且为正整数;计算总任务数, 总、任务数=I:豐小;对含有所述总任务数个任务的任务池进行初始化,任 务池中第i个位置的任务为第i个映射视图的起始位移,所述第i个映射视图的起始位移=i X视图大小,i = l,2,…,η。
[0006] Β,使用系统创建文件函数打开或创建地震数据的文件核心对象,并将返回的文件 句柄作为地震数据的内存映射对象参数。
[0007] C,当读取的地震数据量在程序执行前已经确定,如果对地质数据进行顺序访问, 访问过程中不会产生任务量的变化时,采用将划分好的任务以固定的方式分配给各个执行 线程,具体地:
[0008] 初始化各个线程的任务队列,总数为i(i = l,2,…,η),将所述任务池中的任务均 分给η个线程,并将分配给第i个线程的任务保存在任务队列?(? = 1,2,···,η)中;各执行线 程并行检索各自的任务队列,如果任务队列为空,则结束当前线程,并转至步骤E,否则从任 务队列中提取出一个视图映射起始位移;各执行线程以获取的起始位移为映射起始位移, 调用文件映射视图函数来映射划分的地震数据。
[0009] 当读取的地震数据量在程序开始执行时并不能确定时,采取将所有任务按轮询的 方式逐个分配给各个处于空闲状态的处理器,具体地:
[0010] 多核处理器执行线程判断任务池是否为空,如果任务为空,则结束当前线程并转 至步骤E;否则,从任务池中提取出一个视图映射起始位移,各执行线程以获取的起始位移 为映射起始位移,调用文件映射视图函数来映射划分的地震数据。
[0011] D、各执行线程中分别处理此线程所映射视图下的地震数据,直到各自线程访问存 取完成后,解除各自对应的视图映射,并返回至所述步骤C。
[0012] E、所有访问存取地震数据任务执行完毕后,关闭内存映射文件和文件核心对象; 否则等待。
[0013] 根据本发明基于多核处理器的地震数据快速访问方法的一个实施例,所述映射视 图大小是64KB的整数倍,例如,所述映射视图大小的指定值为64KB。
[0014] 根据本发明基于多核处理器的地震数据快速访问方法的一个实施例,所述方法适 用于采用linux操作系统的计算机。
[0015] 与现有技术相比,本发明的有益效果包括:能够实现地震数据的高效快速访问存 取,且针对数据规模逐步扩大的情况下,在运行过程中具有稳定的加速比,拥有良好的扩展 性,多核处理器计算机环境下的大数据处理领域的数据快速存取问题具有一定的借鉴作 用。
【具体实施方式】
[0016] 在下文中,将结合示例性实施例详细地描述根据本发明的基于多核处理器的地震 数据快速访问方法。
[0017] 本发明提出了一种基于多核处理器的地震数据快速访问方法。该方法的基本思路 在于:基于多核处理器并行计算与linux系统内存映射文件技术原理,通过在多核处理器硬 件环境中执行并行内存映射任务分配及划分,实现地震数据的高效快速访问存取。
[0018] 其中,内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址 空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个 已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对 文件进行映射,就如同将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处 理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将 不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文 件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件 在处理大数据量的文件时能起到相当重要的作用。另外,实际工程中的系统往往需要在多 个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那 么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数 据共享的最有效方法。
[0019]也就是说,内存映射文件指的是硬盘上文件的位置与进程逻辑地址空间中一块大 小相同的区域之间的一一对应。这种对应关系属于逻辑上的概念。在内存映射的过程中,并 没有实际的数据拷贝,文件没有被载入内存,只是逻辑上被放入了内存,即建立并初始化了 相关的数据结构。这个过程通过系统调用实现,所以建立内存映射的效率很高。
[0020] 在多核处理器硬件环境中的海量地震数据划分的核心思想就是将给定的地震数 据划分成η个长度相等的子数据域,将η个子数据域用η个线程并行处理。对文件进行内存映 射时,系统要求文件开始映射的位移是64ΚΒ的整数倍,因此在选取映射视图大小时,需要按 照64ΚΒ的倍数进行操作。单纯的使用一般的数据划分方法难以达精确划分数据的目的。所 以实现地震数据并行内存映射任务分配采用以64ΚΒ为单位,将所需要读取的文件划分为m 块,η个线程,每个线程分到Ξ+64ΚΒ大小的数据块进行快速访问存取。 η
[0021] 根据本发明示例性实施例的基于多核处理器的地震数据快速访问方法,包括以下 步骤:
[0022] A,实时获取访问存取的地震数据文件大小,并确定映射视图大小,例如,在本实施 例中,以一个视图的指定值64KB为映射视图大小;确定拟使用运行的线程数,所述线程数不 大于计算机处理器CHJ的核数η且为正整数,这里,为体现多核处理器的优势,线程数优选大 于1,并且线程数取为计算器CPU核数η为理想状态,通常计算机还有其它应用同时运行,因 此,优选线程数取小于核数η;计算总任务数
;对含有 tasknum个任务的任务池进行初始化,任务池中第i个位置的任务为第i个映射视图的起始 位移,既第i个映射视图的起始位移=i X视图大小,i = l,2,…,η。
[0023] Β,使用系统创建文件函数打开或创建地震数据的文件核心对象,并将返回的文件 句柄(在数据文件的输入输出中,要从一个文件读取数据,应用程序首先要调用操作系统函 数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句 柄。文件句柄对于打开的文件是唯一的识别依据)作为地震数据的内存映射对象参数。 [0024] C,由于地震数据对处理器的读写有要求。对多核处理器环境下的海量地震数据进 行访问存取数据时,通常面临两种情况:第一种情况:当读取的地震数据量在程序执行前已 经确定,如果对地质数据进行顺序访问,访问过程中不会产生任务量的变化时,采用将划分 好的任务以固定的方式分配给各个执行线程,具体地:
[0025] 初始化各个线程的任务队列,总数为i(i = l,2,…,η),将所述任务池中的任务均 分给η个线程,并将分配给第i个线程的任务保存在任务队列i (i = 1,2,…,η)中。
[0026] 各执行线程并行检索各自的任务队列,如果任务队列为空,则结束当前线程,并转 至步骤Ε,否则从任务队列中提取出一个视图映射起始位移。
[0027] 各执行线程以获取的起始位移为映射起始位移,调用文件映射视图函数来映射划 分的地震数据。
[0028] 对多核处理器环境下的海量地震数据进行访问存取数据时,面临的第二种情况 是:当读取的地震数据量在程序开始执行时并不能确定时,采取将所有任务按轮询的方式 逐个分配给各个处于空闲状态的处理器,具体地:
[0029]多核处理器执行线程判断任务池是否为空,如果任务为空,则结束当前线程并转 至步骤Ε;否则,从任务池中提取出一个视图映射起始位移,各执行线程以获取的起始位移 为映射起始位移,调用文件映射视图函数来映射划分的地震数据。
[0030] D、各执行线程中分别处理此线程所映射视图下的地震数据,直到各自线程访问存 取完成后,解除各自对应的视图映射,并返回至所述步骤c。
[0031] E、所有访问存取地震数据任务执行完毕后,关闭内存映射文件和文件核心对象; 否则等待。
[0032]为进一步验证本申请的应用效果,
【申请人】进行了应用实例验证:应用的并行环境: 〇卩1]:11^6 1双0?1]六核乂6〇11处理器,主频2.806取,121?二级缓存;硬盘:50068 5八丁八 lOOOOrpm,内存:48GB。地震数据大小32.86GB,线程数取4,测试随机读写地震数据文件,采 用操作系统指令的方法需耗时约354秒,采用基于多核处理器的地震数据快速访问方法耗 时约189秒。
[0033] 本发明针对的是地震数据处理中心只会采用的网络存储方式。网络存储则必须考 虑通信的传递而达到数据并行处理的一致性。本发明采用的方法只适用于地震数据处理领 域计算机设备采用的linux操作系统,采用的系统函数指令方法与windows系统有明显的差 别。
[0034] 综上所述,本发明专利提出的一种基于多核处理器的地震数据快速访问方法。该 方法基于多核处理器并行计算与linux系统内存映射文件技术原理,通过在多核处理器硬 件环境中执行并行内存映射任务分配及划分,实现地震数据的高效快速访问存取。并且,该 方法针对数据规模扩大的情况拥有良好的扩展性,对多核处理器计算机环境下的大数据处 理领域的数据快速存取问题具有一定的借鉴作用,在石油地震勘探资料海量数据处理方面 具有很好的应用前景。
[0035] 尽管上面已经通过结合示例性实施例描述了本发明,但是本领域技术人员应该清 楚,在不脱离权利要求所限定的精神和范围的情况下,可对本发明的示例性实施例进行各 种修改和改变。
【主权项】
1. 一种基于多核处理器的地震数据快速访问方法,其特征在于,所述方法通过在多核 处理器硬件环境中实施并行内存映射任务分配及划分,实现地震数据的快速访问存取,具 体地,所述方法包括W下步骤: A,实时获取访问存取的地震数据文件大小,并确定映射视图大小; 确定拟使用运行的线程数,所述线程数不大于计算机处理器CPU的核数η且为正整数; 计算总任务数:对含有所述总任务数个任务的任务池进行初始化,任务池中第i个位置的任务为第i个 映射视图的起始位移,所述第i个映射视图的起始位移=i X视图大小,i = 1,2,…,η; Β,使用系统创建文件函数打开或创建地震数据的文件核屯、对象,并将返回的文件句柄 作为地震数据的内存映射对象参数; C,当读取的地震数据量在程序执行前已经确定,如果对地质数据进行顺序访问,访问 过程中不会产生任务量的变化时,采用将划分好的任务W固定的方式分配给各个执行线 程,具体地: 初始化各个线程的任务队列,总数为ia = l,2,…,η),将所述任务池中的任务均分给η 个线程,并将分配给第i个线程的任务保存在任务队列i (i = 1,2,…,η)中; 各执行线程并行检索各自的任务队列,如果任务队列为空,则结束当前线程,并转至步 骤Ε,否则从任务队列中提取出一个视图映射起始位移; 各执行线程W获取的起始位移为映射起始位移,调用文件映射视图函数来映射划分的 地震数据; 当读取的地震数据量在程序开始执行时并不能确定时,采取将所有任务按轮询的方式 逐个分配给各个处于空闲状态的处理器,具体地: 多核处理器执行线程判断任务池是否为空,如果任务为空,则结束当前线程并转至步 骤Ε;否则,从任务池中提取出一个视图映射起始位移,各执行线程W获取的起始位移为映 射起始位移,调用文件映射视图函数来映射划分的地震数据; D、各执行线程中分别处理此线程所映射视图下的地震数据,直到各自线程访问存取完 成后,解除各自对应的视图映射,并返回至所述步骤C; Ε、所有访问存取地震数据任务执行完毕后,关闭内存映射文件和文件核屯、对象;否则 等待。2. 根据权利要求1所述的基于多核处理器的地震数据快速访问方法,其特征在于,所述 映射视图大小是64ΚΒ的整数倍。3. 根据权利要求1所述的基于多核处理器的地震数据快速访问方法,其特征在于,所述 映射视图大小的指定值为64ΚΒ。4. 根据权利要求1所述的基于多核处理器的地震数据快速访问方法,其特征在于,所述 方法适用于采用linux操作系统的计算机。
【文档编号】G06F12/0806GK106095695SQ201610395348
【公开日】2016年11月9日
【申请日】2016年6月6日 公开号201610395348.4, CN 106095695 A, CN 106095695A, CN 201610395348, CN-A-106095695, CN106095695 A, CN106095695A, CN201610395348, CN201610395348.4
【发明人】李振, 金德刚, 李磊, 巫骏, 陈波, 陈丹, 曹中林
【申请人】中国石油集团川庆钻探工程有限公司地球物理勘探公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1