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

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

Info

Publication number
CN106095695A
CN106095695A CN201610395348.4A CN201610395348A CN106095695A CN 106095695 A CN106095695 A CN 106095695A CN 201610395348 A CN201610395348 A CN 201610395348A CN 106095695 A CN106095695 A CN 106095695A
Authority
CN
China
Prior art keywords
thread
task
geological data
data
polycaryon processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610395348.4A
Other languages
English (en)
Inventor
李振
金德刚
李磊
巫骏
陈波
陈丹
曹中林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BGP Inc
Original Assignee
Geophysical Prospecting Co of CNPC Chuanqing Drilling Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Geophysical Prospecting Co of CNPC Chuanqing Drilling Engineering Co Ltd filed Critical Geophysical Prospecting Co of CNPC Chuanqing Drilling Engineering Co Ltd
Priority to CN201610395348.4A priority Critical patent/CN106095695A/zh
Publication of CN106095695A publication Critical patent/CN106095695A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geophysics And Detection Of Objects (AREA)

Abstract

本发明提供了一种基于多核处理器的地震数据快速访问方法。所述方法基于多核处理器并行计算与linux系统内存映射文件技术原理,通过在多核处理器硬件环境中实施并行内存映射任务分配及划分,实现地震数据的快速访问存取。并且,该方法针对数据规模扩大的情况拥有良好的扩展性,对多核处理器计算机环境下的大数据处理领域的数据快速存取问题具有一定的借鉴作用,在石油地震勘探资料海量数据处理方面具有很好的应用前景。

Description

一种基于多核处理器的地震数据快速访问方法
技术领域
本发明涉及地质勘探技术领域,更具体地讲,涉及一种海量地震数据的快速访问方法。
背景技术
当前的石油天然气地震勘探工作中,由于可控震源高效采集技术的推广应用和高密度三维地震勘探的迅速发展,地震观测采样精度越高,采集的数据越大。采集获得的数据量呈几何指数增长,从2~3TB到50TB甚至更大。如此庞大的规模对地震数据的快速访问存取处理技术提出了新的要求。虽然通过高性能计算机集群等硬件的投入,多核计算机并行处理已经可以完成许多大规模计算任务。然而在海量地震数据的处理运算中,存储器与辅助存储器间的数据访问存取往往会成为制约应用程序运行速度的瓶颈,从而不能很好的发挥高性能计算机多核处理器的优越硬件性能。这就需要一种能够发挥多核处理器并行计算性能,突破存储器与辅助存储器间的数据存取瓶颈的方法。
发明内容
针对现有技术中存在的不足,本发明的目的之一在于解决上述现有技术中存在的一个或多个问题。例如,本发明的目的之一在于提出一种基于多核处理器的地震数据快速访问方法,以实现地震数据的高效快速访问存取。
为了实现上述目的,本发明提供了一种基于多核处理器的地震数据快速访问方法。所述方法通过在多核处理器硬件环境中实施并行内存映射任务分配及划分,实现地震数据的快速访问存取,所述方法包括以下步骤:
A,实时获取访问存取的地震数据文件大小,并确定映射视图大小;确定拟使用运行的线程数,所述线程数不大于计算机处理器CPU的核数n且为正整数;计算总任务数,对含有所述总任务数个任务的任务池进行初始化,任务池中第i个位置的任务为第i个映射视图的起始位移,所述第i个映射视图的起始位移=i×视图大小,i=1,2,…,n。
B,使用系统创建文件函数打开或创建地震数据的文件核心对象,并将返回的文件句柄作为地震数据的内存映射对象参数。
C,当读取的地震数据量在程序执行前已经确定,如果对地质数据进行顺序访问,访问过程中不会产生任务量的变化时,采用将划分好的任务以固定的方式分配给各个执行线程,具体地:
初始化各个线程的任务队列,总数为i(i=1,2,…,n),将所述任务池中的任务均分给n个线程,并将分配给第i个线程的任务保存在任务队列i(i=1,2,…,n)中;各执行线程并行检索各自的任务队列,如果任务队列为空,则结束当前线程,并转至步骤E,否则从任务队列中提取出一个视图映射起始位移;各执行线程以获取的起始位移为映射起始位移,调用文件映射视图函数来映射划分的地震数据。
当读取的地震数据量在程序开始执行时并不能确定时,采取将所有任务按轮询的方式逐个分配给各个处于空闲状态的处理器,具体地:
多核处理器执行线程判断任务池是否为空,如果任务为空,则结束当前线程并转至步骤E;否则,从任务池中提取出一个视图映射起始位移,各执行线程以获取的起始位移为映射起始位移,调用文件映射视图函数来映射划分的地震数据。
D、各执行线程中分别处理此线程所映射视图下的地震数据,直到各自线程访问存取完成后,解除各自对应的视图映射,并返回至所述步骤C。
E、所有访问存取地震数据任务执行完毕后,关闭内存映射文件和文件核心对象;否则等待。
根据本发明基于多核处理器的地震数据快速访问方法的一个实施例,所述映射视图大小是64KB的整数倍,例如,所述映射视图大小的指定值为64KB。
根据本发明基于多核处理器的地震数据快速访问方法的一个实施例,所述方法适用于采用linux操作系统的计算机。
与现有技术相比,本发明的有益效果包括:能够实现地震数据的高效快速访问存取,且针对数据规模逐步扩大的情况下,在运行过程中具有稳定的加速比,拥有良好的扩展性,多核处理器计算机环境下的大数据处理领域的数据快速存取问题具有一定的借鉴作用。
具体实施方式
在下文中,将结合示例性实施例详细地描述根据本发明的基于多核处理器的地震数据快速访问方法。
本发明提出了一种基于多核处理器的地震数据快速访问方法。该方法的基本思路在于:基于多核处理器并行计算与linux系统内存映射文件技术原理,通过在多核处理器硬件环境中执行并行内存映射任务分配及划分,实现地震数据的高效快速访问存取。
其中,内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就如同将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。
也就是说,内存映射文件指的是硬盘上文件的位置与进程逻辑地址空间中一块大小相同的区域之间的一一对应。这种对应关系属于逻辑上的概念。在内存映射的过程中,并没有实际的数据拷贝,文件没有被载入内存,只是逻辑上被放入了内存,即建立并初始化了相关的数据结构。这个过程通过系统调用实现,所以建立内存映射的效率很高。
在多核处理器硬件环境中的海量地震数据划分的核心思想就是将给定的地震数据划分成n个长度相等的子数据域,将n个子数据域用n个线程并行处理。对文件进行内存映射时,系统要求文件开始映射的位移是64KB的整数倍,因此在选取映射视图大小时,需要按照64KB的倍数进行操作。单纯的使用一般的数据划分方法难以达精确划分数据的目的。所以实现地震数据并行内存映射任务分配采用以64KB为单位,将所需要读取的文件划分为m块,n个线程,每个线程分到个64KB大小的数据块进行快速访问存取。
根据本发明示例性实施例的基于多核处理器的地震数据快速访问方法,包括以下步骤:
A,实时获取访问存取的地震数据文件大小,并确定映射视图大小,例如,在本实施例中,以一个视图的指定值64KB为映射视图大小;确定拟使用运行的线程数,所述线程数不大于计算机处理器CPU的核数n且为正整数,这里,为体现多核处理器的优势,线程数优选大于1,并且线程数取为计算器CPU核数n为理想状态,通常计算机还有其它应用同时运行,因此,优选线程数取小于核数n;计算总任务数对含有tasknum个任务的任务池进行初始化,任务池中第i个位置的任务为第i个映射视图的起始位移,既第i个映射视图的起始位移=i×视图大小,i=1,2,…,n。
B,使用系统创建文件函数打开或创建地震数据的文件核心对象,并将返回的文件句柄(在数据文件的输入输出中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄。文件句柄对于打开的文件是唯一的识别依据)作为地震数据的内存映射对象参数。
C,由于地震数据对处理器的读写有要求。对多核处理器环境下的海量地震数据进行访问存取数据时,通常面临两种情况:第一种情况:当读取的地震数据量在程序执行前已经确定,如果对地质数据进行顺序访问,访问过程中不会产生任务量的变化时,采用将划分好的任务以固定的方式分配给各个执行线程,具体地:
初始化各个线程的任务队列,总数为i(i=1,2,…,n),将所述任务池中的任务均分给n个线程,并将分配给第i个线程的任务保存在任务队列i(i=1,2,…,n)中。
各执行线程并行检索各自的任务队列,如果任务队列为空,则结束当前线程,并转至步骤E,否则从任务队列中提取出一个视图映射起始位移。
各执行线程以获取的起始位移为映射起始位移,调用文件映射视图函数来映射划分的地震数据。
对多核处理器环境下的海量地震数据进行访问存取数据时,面临的第二种情况是:当读取的地震数据量在程序开始执行时并不能确定时,采取将所有任务按轮询的方式逐个分配给各个处于空闲状态的处理器,具体地:
多核处理器执行线程判断任务池是否为空,如果任务为空,则结束当前线程并转至步骤E;否则,从任务池中提取出一个视图映射起始位移,各执行线程以获取的起始位移为映射起始位移,调用文件映射视图函数来映射划分的地震数据。
D、各执行线程中分别处理此线程所映射视图下的地震数据,直到各自线程访问存取完成后,解除各自对应的视图映射,并返回至所述步骤C。
E、所有访问存取地震数据任务执行完毕后,关闭内存映射文件和文件核心对象;否则等待。
为进一步验证本申请的应用效果,申请人进行了应用实例验证:应用的并行环境:CPU:Intel双CPU六核Xeon处理器,主频2.80GHz,12MB二级缓存;硬盘:500GB SATA10000rpm,内存:48GB。地震数据大小32.86GB,线程数取4,测试随机读写地震数据文件,采用操作系统指令的方法需耗时约354秒,采用基于多核处理器的地震数据快速访问方法耗时约189秒。
本发明针对的是地震数据处理中心只会采用的网络存储方式。网络存储则必须考虑通信的传递而达到数据并行处理的一致性。本发明采用的方法只适用于地震数据处理领域计算机设备采用的linux操作系统,采用的系统函数指令方法与windows系统有明显的差别。
综上所述,本发明专利提出的一种基于多核处理器的地震数据快速访问方法。该方法基于多核处理器并行计算与linux系统内存映射文件技术原理,通过在多核处理器硬件环境中执行并行内存映射任务分配及划分,实现地震数据的高效快速访问存取。并且,该方法针对数据规模扩大的情况拥有良好的扩展性,对多核处理器计算机环境下的大数据处理领域的数据快速存取问题具有一定的借鉴作用,在石油地震勘探资料海量数据处理方面具有很好的应用前景。
尽管上面已经通过结合示例性实施例描述了本发明,但是本领域技术人员应该清楚,在不脱离权利要求所限定的精神和范围的情况下,可对本发明的示例性实施例进行各种修改和改变。

Claims (4)

1.一种基于多核处理器的地震数据快速访问方法,其特征在于,所述方法通过在多核处理器硬件环境中实施并行内存映射任务分配及划分,实现地震数据的快速访问存取,具体地,所述方法包括以下步骤:
A,实时获取访问存取的地震数据文件大小,并确定映射视图大小;
确定拟使用运行的线程数,所述线程数不大于计算机处理器CPU的核数n且为正整数;
计算总任务数,
对含有所述总任务数个任务的任务池进行初始化,任务池中第i个位置的任务为第i个映射视图的起始位移,所述第i个映射视图的起始位移=i×视图大小,i=1,2,…,n;
B,使用系统创建文件函数打开或创建地震数据的文件核心对象,并将返回的文件句柄作为地震数据的内存映射对象参数;
C,当读取的地震数据量在程序执行前已经确定,如果对地质数据进行顺序访问,访问过程中不会产生任务量的变化时,采用将划分好的任务以固定的方式分配给各个执行线程,具体地:
初始化各个线程的任务队列,总数为i(i=1,2,…,n),将所述任务池中的任务均分给n个线程,并将分配给第i个线程的任务保存在任务队列i(i=1,2,…,n)中;
各执行线程并行检索各自的任务队列,如果任务队列为空,则结束当前线程,并转至步骤E,否则从任务队列中提取出一个视图映射起始位移;
各执行线程以获取的起始位移为映射起始位移,调用文件映射视图函数来映射划分的地震数据;
当读取的地震数据量在程序开始执行时并不能确定时,采取将所有任务按轮询的方式逐个分配给各个处于空闲状态的处理器,具体地:
多核处理器执行线程判断任务池是否为空,如果任务为空,则结束当前线程并转至步骤E;否则,从任务池中提取出一个视图映射起始位移,各执行线程以获取的起始位移为映射起始位移,调用文件映射视图函数来映射划分的地震数据;
D、各执行线程中分别处理此线程所映射视图下的地震数据,直到各自线程访问存取完成后,解除各自对应的视图映射,并返回至所述步骤C;
E、所有访问存取地震数据任务执行完毕后,关闭内存映射文件和文件核心对象;否则等待。
2.根据权利要求1所述的基于多核处理器的地震数据快速访问方法,其特征在于,所述映射视图大小是64KB的整数倍。
3.根据权利要求1所述的基于多核处理器的地震数据快速访问方法,其特征在于,所述映射视图大小的指定值为64KB。
4.根据权利要求1所述的基于多核处理器的地震数据快速访问方法,其特征在于,所述方法适用于采用linux操作系统的计算机。
CN201610395348.4A 2016-06-06 2016-06-06 一种基于多核处理器的地震数据快速访问方法 Pending CN106095695A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610395348.4A CN106095695A (zh) 2016-06-06 2016-06-06 一种基于多核处理器的地震数据快速访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610395348.4A CN106095695A (zh) 2016-06-06 2016-06-06 一种基于多核处理器的地震数据快速访问方法

Publications (1)

Publication Number Publication Date
CN106095695A true CN106095695A (zh) 2016-11-09

Family

ID=57448372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610395348.4A Pending CN106095695A (zh) 2016-06-06 2016-06-06 一种基于多核处理器的地震数据快速访问方法

Country Status (1)

Country Link
CN (1) CN106095695A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463401A (zh) * 2020-10-30 2021-03-09 中国石油天然气集团有限公司 一种基于gpu的地震数据相关方法和装置
CN116204288A (zh) * 2023-02-08 2023-06-02 北京四维远见信息技术有限公司 混合云数据处理系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101839997A (zh) * 2009-03-18 2010-09-22 中国石油天然气集团公司 一种地震数据并行存储系统
US20110099151A1 (en) * 2009-10-23 2011-04-28 Tatu Ylonen Oy Ltd Saving snapshot of a knowledge base without blocking
CN102231121A (zh) * 2011-07-25 2011-11-02 北方工业大学 基于内存映射的大数据文件快速并行提取方法
CN103049245A (zh) * 2012-10-25 2013-04-17 浪潮电子信息产业股份有限公司 一种基于cpu多核平台的软件性能优化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101839997A (zh) * 2009-03-18 2010-09-22 中国石油天然气集团公司 一种地震数据并行存储系统
US20110099151A1 (en) * 2009-10-23 2011-04-28 Tatu Ylonen Oy Ltd Saving snapshot of a knowledge base without blocking
CN102231121A (zh) * 2011-07-25 2011-11-02 北方工业大学 基于内存映射的大数据文件快速并行提取方法
CN103049245A (zh) * 2012-10-25 2013-04-17 浪潮电子信息产业股份有限公司 一种基于cpu多核平台的软件性能优化方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463401A (zh) * 2020-10-30 2021-03-09 中国石油天然气集团有限公司 一种基于gpu的地震数据相关方法和装置
CN116204288A (zh) * 2023-02-08 2023-06-02 北京四维远见信息技术有限公司 混合云数据处理系统和方法
CN116204288B (zh) * 2023-02-08 2024-02-27 北京四维远见信息技术有限公司 混合云数据处理系统和方法

Similar Documents

Publication Publication Date Title
Bakshi Considerations for big data: Architecture and approach
Reaño et al. Local and remote GPUs perform similar with EDR 100G InfiniBand
CN106383695B (zh) 基于fpga的聚类算法的加速系统及其设计方法
CN102231121B (zh) 基于内存映射的大数据文件快速并行提取方法
Yitbarek et al. Exploring specialized near-memory processing for data intensive operations
CN107301455A (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
US8694575B2 (en) Data-intensive computer architecture
CN103221923A (zh) 用于地震数据处理的计算加速的方法和系统
Dong et al. Expediting scientific data analysis with reorganization of data
Shkurko et al. Dual streaming for hardware-accelerated ray tracing
Rustico et al. Smoothed particle hydrodynamics simulations on multi-GPU systems
Li et al. GraphIA: An in-situ accelerator for large-scale graph processing
Issa Performance characterization and analysis for Hadoop K-means iteration
Strnad Parallel terrain visibility calculation on the graphics processing unit
CN106095695A (zh) 一种基于多核处理器的地震数据快速访问方法
Zhou et al. FASTCF: FPGA-based accelerator for stochastic-gradient-descent-based collaborative filtering
Tolmachev VkFFT-a performant, cross-platform and open-source GPU FFT library
Liu Yolov2 acceleration using embedded gpu and fpgas: pros, cons, and a hybrid method
Fakhry et al. A review on computational storage devices and near memory computing for high performance applications
Dong et al. SDS-sort: Scalable dynamic skew-aware parallel sorting
Gu et al. Processing massive sized graphs using sector/sphere
Cheng et al. Accelerating scientific workflows with tiered data management system
Sundarakumar et al. An Approach in Big Data Analytics to Improve the Velocity of Unstructured Data Using MapReduce
Qian et al. A study on non-volatile 3d stacked memory for big data applications
Kim et al. Design and implementation of papyrus: Parallel aggregate persistent storage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No. 216, No. 216, Huayang Avenue, Tianfu New District, Sichuan, Sichuan

Applicant after: China National Petroleum Corporation Chuanqing Drilling Engineering Geophysical Exploration Company Ltd.

Address before: No. 216, No. 216, Huayang Avenue, Huayang Town, Shuangliu County, Shuangliu County, Sichuan

Applicant before: China National Petroleum Corporation Chuanqing Drilling Engineering Geophysical Exploration Company Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180330

Address after: No. 189, fan Yangxi Road, Zhuozhou City, Baoding, Hebei

Applicant after: Dongfang Geophysical Exploration Co., Ltd., China Petrochemical Corp.

Address before: No. 216, No. 216, Huayang Avenue, Tianfu New District, Sichuan, Sichuan

Applicant before: China National Petroleum Corporation Chuanqing Drilling Engineering Geophysical Exploration Company Ltd.