CN113139261A - 一种用于提高钻井仿真速度的方法及系统 - Google Patents
一种用于提高钻井仿真速度的方法及系统 Download PDFInfo
- Publication number
- CN113139261A CN113139261A CN202010051289.5A CN202010051289A CN113139261A CN 113139261 A CN113139261 A CN 113139261A CN 202010051289 A CN202010051289 A CN 202010051289A CN 113139261 A CN113139261 A CN 113139261A
- Authority
- CN
- China
- Prior art keywords
- calculation
- simulation
- computation
- drilling
- task
- 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.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 303
- 238000005553 drilling Methods 0.000 title claims abstract description 247
- 238000000034 method Methods 0.000 title claims abstract description 146
- 238000004364 calculation method Methods 0.000 claims abstract description 536
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000001360 synchronised effect Effects 0.000 claims abstract description 11
- 238000000638 solvent extraction Methods 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 83
- 238000010586 diagram Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 239000011435 rock Substances 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 239000002002 slurry Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于提高钻井仿真速度的方法,包括:获取当前仿真计算任务所需的原始数据;根据演示时间需求和副服务器数量,将由当前仿真环境形成的井筒模型,按照不同深度范围进行计算量等量或增量划分处理,得到多个计算集合,其中,等量划分处理为每个计算集合的计算量相同且每个计算集合的计算耗时与其演示耗时相同,增量划分处理为每个计算集合的计算耗时等于其前一个计算集合的计算耗时和演示耗时之和;将每个计算集合对应的集合任务分配给指定的副服务器;多个副服务器接收完成相应集合任务所需的原始数据,执行钻井仿真计算;接收并演示各集合任务的计算结果。本发明实现同步仿真同步演示,提高钻井仿真结果对决策支持的时效性。
Description
技术领域
本发明涉及石油工程领域,尤其是涉及一种用于提高钻井仿真速度的方法及系统。
背景技术
钻井工程作为一项地下隐蔽性工程,由于地下的不可见性,大量的非均质性、不确定性、非结构性以及非数值化难题构成了钻井工程“黑箱”。井下的高温高压环境、钻柱高频振动、钻柱环空泥浆高速流动、长时间钻进作业以及信号传送困难等均对传感器有着极其严苛的要求,无法依靠传感工具实现长时间井下状态的稳定精确监测。目前,钻井工程“黑箱”问题的解决主要依赖于应用现有理论仿真计算方法对当量循环密度、摩阻扭矩、管柱力学等各项井下状态参数进行仿真计算,“黑箱”结果的呈现则依靠二维曲线及三维动画等演示手段,进而为现场工程师和专家提供决策参考。
钻井井下参数的仿真计算如果要尽可能准确,则需要将井筒模型划分为密集的网格,进行长时间的海量迭代计算。然而,钻井工程的不确定性需要决策中心的业务专家根据仿真计算结果及时做出判断决策,也就是要尽可能提升仿真演示速度、并压缩输出仿真结果的等待时间。但是,目前的钻井仿真演示中采用的方式是将仿真计算中所需要用到的各类钻井参数(例如:循环当量密度、钻柱受力等)由一台服务器执行计算操作完成之后再进行钻井仿真演示,在仿真井井深越深计算量越大时,业务专家见到仿真结果的等待时间也就越长,存在较大的延后性,从而影响业务专家利用钻井仿真结果决策的实时性。
现有技术中,虽然有相关技术方案考虑到了钻井仿真过程中钻进数据及其计算软件分级进行顺序分级的方法来提高钻井仿真过程的完成效率,但仅提到了不同参数类别在局域网内进行整体分布部署以加快计算的方式,仍未考虑到针对某一类参数仿真计算进行提速的方案。因而,针对当前钻井仿真多参数计算耗时长的问题,急需一种可靠、易行的提高钻井仿真速度的方法,压缩钻井仿真计算结果输出的等待时间,从而为用户提供更加及时的决策参考。
发明内容
为了解决上述技术问题,本发明提供了一种用于提高钻井仿真速度的方法,包括:获取当前仿真计算任务所需的原始数据;根据演示时间需求和参与完成当前任务的副服务器数量,将由当前仿真环境形成的井筒模型,按照不同深度范围进行计算量等量或增量划分处理,得到多个计算集合,其中,计算量等量划分处理为每个计算集合的计算量相同且每个计算集合的计算耗时与其演示耗时相同,计算量增量划分处理为每个计算集合的计算耗时等于其前一个计算集合的计算耗时和演示耗时之和;将每个计算集合对应的集合任务分配给指定的所述副服务器;多个所述副服务器接收完成相应集合任务所需的原始数据,执行相应的钻井仿真计算;接收并演示各所述集合任务的计算结果。
优选地,在进行计算量等量划分处理时,进一步,按照预设的仿真精度,将所述井筒模型进行网格划分,并确定计算每个网格的计算量、计算耗时、演示耗时以及完成当前任务的总计算量;根据计算量信息和耗时信息,先将当前任务按照所述井筒模型的不同深度范围段划分为计算量相同的多个计算单元并进行排序,而后将每所述副服务器数量个的计算单元形成为相应的计算集合,使得每个所述计算单元对应的子任务的计算时间与针对所述计算集合的计算结果演示时间相同,得到针对每个计算单元的原始数据。
优选地,在将每个计算集合对应的集合任务分配给指定的所述副服务器步骤中,包括:检测各副服务器的空闲状态;在所述各副服务器均处于空闲状态时,按照计算集合的排列顺序,筛选出具有最小编号且未进行集合任务分配的计算集合,并将该集合内分别用于完成各计算单元对应的子任务所需的原始数据,同时分配给不同的所述副服务器,使得各所述副服务器利用属于自身的原始数据进行钻井仿真计算。
优选地,在接收并演示各所述集合任务的计算结果步骤中,包括:同时接收来自各所述副服务器的子任务计算结果,并按照相应的深度和/或钻井时间维度进行针对当前计算集合的结果演示,以在接收到针对下一个相邻计算集合内的各所述子任务计算结果后,进行无时间间隔演示。
优选地,在进行计算量增量划分处理时,进一步,按照预设的仿真精度,将所述井筒模型进行网格划分,并确定计算每个网格的计算量、计算耗时、演示耗时以及完成当前任务的总计算量;根据计算量信息和耗时信息,将当前任务按照所述井筒模型的不同深度范围段划分为计算量增量的多个计算集合,得到针对每个计算集合的原始数据。
优选地,在将每个计算集合对应的集合任务分配给指定的所述副服务器步骤中,包括:按照各所述副服务器的编号,利用轮询机制,依次检测各所述副服务器的空闲状态;若当前副服务器处于空闲状态,则按照计算集合的排列顺序,筛选出具有最小编号且未进行集合任务分配的计算集合,并将该计算集合对应的子任务所需的原始数据发送至所述当前副服务器,使得所述当前副服务器利用属于自身的原始数据进行钻井仿真计算。
优选地,在接收并演示各所述集合任务的计算结果步骤中,包括:依次接收来自各所述副服务器的子任务计算结果,并按照相应的深度和/或钻井时间维度维度进行无时间间隔演示。
优选地,在多个所述副服务器接收完成相应集合任务所需的原始数据,执行相应的钻井仿真计算步骤中,包括:各所述服务器同时接收相应的子任务原始数据,以同步并行方式执行相应的钻井仿真计算任务。
另一方面,本发明还提供了一种用于提高钻井仿真速度的系统,所述系统利用如上述所述的方法来提高钻井仿真演示速度,其中,所述系统包括:主服务器,其用于获取当前仿真计算任务所需的原始数据,根据演示时间需求和参与完成当前任务的副服务器数量,将由当前仿真环境形成的井筒模型,按照不同深度范围进行计算量等量或增量划分处理,得到多个计算集合,而后,将每个计算集合对应的集合任务分配给指定的所述副服务器,以及接收并演示各所述集合任务的计算结果,其中,计算量等量划分处理为每个计算集合的计算量相同且每个计算集合的计算耗时与其演示耗时相同,计算量增量划分处理为每个计算集合的计算耗时等于其前一个计算集合的计算耗时和演示耗时之和;多个所述副服务器,其用于接收完成相应集合任务所需的原始数据,执行相应的钻井仿真计算。
优选地,多个所述副服务器配置为分布式并行计算服务器。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
本发明公开了一种用于提高钻井仿真速度的方法及系统。该方法及系统应用分布式计算技术,先部署一定数量的分布式计算服务器和一台主服务器、并进行全井筒钻井仿真计算量预估之后,根据钻井仿真演示速度需求将全井筒迭代计算量以等量或增量方式划分为多个计算集合,由分布式计算服务器顺次同时承担一个集合进行仿真,完成后将计算结果输送至主服务器顺次进行仿真结果的连续性演示。本发明改变以往先仿真计算后仿真演示的流程,实现同步仿真同步演示,以钻井参数仿真计算阶段与计算结果演示阶段在时间上交叉重叠的方式来提高钻井仿真演示速度,为现场工程师和学科专家提供更加及时的决策参考,从而提高钻井仿真结果对决策支持的时效性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本申请实施例的用于提高钻井仿真速度的方法的步骤图。
图2是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量等量划分处理时的原理示意图。
图3是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量等量划分处理时的实现流程图。
图4是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量增量划分处理时的原理示意图。
图5是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量增量划分处理时的实现流程图。
图6是本申请实施例的用于提高钻井仿真速度的系统的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
钻井工程作为一项地下隐蔽性工程,由于地下的不可见性,大量的非均质性、不确定性、非结构性以及非数值化难题构成了钻井工程“黑箱”。井下的高温高压环境、钻柱高频振动、钻柱环空泥浆高速流动、长时间钻进作业以及信号传送困难等均对传感器有着极其严苛的要求,无法依靠传感工具实现长时间井下状态的稳定精确监测。目前,钻井工程“黑箱”问题的解决主要依赖于应用现有理论仿真计算方法对当量循环密度、摩阻扭矩、管柱力学等各项井下状态参数进行仿真计算,“黑箱”结果的呈现则依靠二维曲线及三维动画等演示手段,进而为现场工程师和专家提供决策参考。
钻井井下参数的仿真计算如果要尽可能准确,则需要将井筒模型划分为密集的网格,进行长时间的海量迭代计算。然而,钻井工程的不确定性需要决策中心的业务专家根据仿真计算结果及时做出判断决策,也就是要尽可能提升仿真演示速度、并压缩输出仿真结果的等待时间。但是,目前的钻井仿真演示中采用的方式是将仿真计算中所需要用到的各类钻井参数(例如:循环当量密度、钻柱受力等)由一台服务器执行计算操作完成之后再进行钻井仿真演示,在仿真井井深越深计算量越大时,业务专家见到仿真结果的等待时间也就越长,存在较大的延后性,从而影响业务专家利用钻井仿真结果决策的实时性。
现有技术中,虽然有相关技术方案考虑到了钻井仿真过程中钻进数据及其计算软件分级进行顺序分级的方法,但仅提到了不同参数类别在局域网内进行整体分布部署以加快计算的方式,仍未考虑到针对某一类参数仿真计算进行提速的方案。因而,针对当前钻井仿真多参数计算耗时长的问题,急需一种可靠、易行的提高钻井仿真速度的方法,全方位的压缩钻井仿真计算结果输出的等待时间,从而为用户提供更加及时的决策参考。
为了解决针对目前钻井仿真过程迭代计算量巨大,仿真计算耗时长,传统仿真方法由一台计算服务器完成全井仿真计算后才演示仿真结果,使得用户难以及时获得钻井仿真结果来进行后续决策的问题,本发明提出了一种用于提高钻井仿真速度的方法及系统。
该方法及系统搭建了分布式的多个计算服务器结构,每个计算服务器完成不同井筒深度下的钻井参数仿真计算子任务。具体通过应用分布式计算技术,主服务器根据钻井仿真演示速度需求(演示时间需求)将全井筒迭代计算量等量或增量划分为z等份(得到z个计算集合)。在计算量等量划分处理时,由主服务器将每个计算集合进一步划分为i等份,得到同一个计算集合中的i个计算单元对应的子任务,由i个分布式计算主机(i个副服务器)同时承担i份计算单元作为一个集合进行仿真,每个计算服务器完成一个计算单元对应的计算子任务,完成后将属于同一个计算集合的各子任务计算结果输送至主服务器顺次进行仿真结果演示,在第1计算集合仿真结果演示过程中,i个分布式计算服务器执行第2计算集合对应的钻井仿真计算任务,如此循环,实现仿真计算过程与演示过程同步实施的钻井仿真过程,提高钻井仿真演示速度以及仿真结果对决策支持的时效性。
另外,在计算量增量划分处理时,根据钻井仿真演示速度需求(演示时间需求),将全井筒的迭代计算量划分为z个计算集合,从第二份集合开始,每一个计算集合的仿真计算消耗时间等于前一个计算集合的仿真计算与演示时间之和,由i个分布式计算服务器顺次同时承担i份进行计算集合对应的仿真计算子任务,顺次完成仿真计算子任务后,将相应的子任务计算结果输送至主服务器进行仿真结果演示,先完成仿真计算的分布式计算服务器,交叉承担后续的计算集合,如此循环,实现仿真计算过程与演示过程同步实施的钻井仿真过程,提高钻井仿真演示速度以及仿真结果对决策支持的时效性。
在对本发明实施例进行详细说明之前,需要对本发明的适用场合进行说明。本发明的方法可用于钻井之前的方案仿真预演或者用于在实钻过程中的仿真监测。在钻前预演仿真过程中,需要模拟实钻过程将钻井设计方案中的参数以一定的时间间隔(秒级)推送给仿真主模块,仿真主模块通过形象的三维场景将井下状态显示出来,经过数据的连续推送和仿真显示,即可看到钻井的连续过程。在这个连续仿真过程中,针对每个时间点,都可对井筒水力参数、钻具摩阻扭矩、机械钻速、钻井风险等不同类别的钻井参数进行计算并快速反馈给仿真软件,使得原始数据与计算结果“同步”。在实钻仿真监测过程中,通过现场采集实时传输的参数(秒级间隔),同时分发给计算模块得到不同类别的钻井(关键)参数(计算结果),并将当前计算结果回馈给仿真主模块,确保这个高频连续钻井过程的仿真。
此外,在钻井仿真系统中,无论是钻前的仿真还是随钻仿真,所展现的钻井仿真结果都是基于仿真环境限定下的结果。其中,仿真环境包括:起始井深、终止井深、以及仿真精度。由于在随钻仿真过程中,终止井深是随着钻井深度的不断加深而变化的,使得随钻仿真的仿真环境也是实时变化的。此外,仿真精度为钻井仿真过程的计算步长(深度步长)。
本发明所述的用于提高钻井仿真速度的方法(以下简称“仿真方法”)应用于下述钻井仿真系统(以下简称“仿真系统”)中,参考图6,仿真系统包括:主服务器1、和多个副服务器2。本发明实施例,利用分布式并行计算技术,将多个副服务器2配置为分布式并行计算服务器结构。具体地,为了达到快速并行计算的目的,本发明实施例需要搭建N个分布式计算节点服务器(N为仿真系统所配置的副服务器2的数量),来构建大数据的集群环境,需要多个集群计算节点,将每个副服务器2看作是一个计算节点,在本发明实施例中,可以利用虚拟机完成搭建(在虚拟机上搭建操作系统,实现和物理机一样的操作),也可以利用Matlab来进行搭建。
更进一步地说,由于上述主服务器1所需执行的子任务分配过程、各个副服务器2所需执行的子任务计算过程、以及各个子任务计算结果的展示过程,对服务器的资源占有情况是互不干扰的。由此,为了优化仿真系统的结构,可将上述主服务器1集成于任意一个副服务器2中。这样,本发明实施例所述的仿真系统仅由分布式并行计算服务器2所构成。
图1是本申请实施例的用于提高钻井仿真速度的方法的步骤图。本发明实施例所述的仿真方法为上述所述的仿真系统运行后的实现方法,参考图1,对本发明仿真方法的实施过程进行说明。如图1所示,首先,步骤S110主服务器1获取当前钻井仿真计算总任务所需的原始数据,而后进入到步骤S120中。在当前钻井仿真结果进行展示之前,需要根据完成当前钻井仿真任务所需要的原始数据来计算不同类别的钻井参数(也就是说,需要执行针对当前钻井仿真任务中的钻井参数仿真计算总任务),从而利用钻井参数计算结果来进行当前钻井仿真任务中的结果演示。其中,钻井仿真所需的原始数据包括:实钻过程中采集到的各种实测数据、以及各种预先设计好的静态参数(设计参数)。其中,实测数据包含:地质数据和钻井工程数据,地质数据包括地层压力、岩石物性、岩石力学参数等;钻井工程数据包含井眼轨迹、钻具组合、钻井液性能、钻井施工参数等。钻井设计参数包括:井深结构、地层分层等。
步骤S120主服务器1根据演示时间需求、和参与完成当前钻井仿真计算任务的副服务器数量(也就是,当前仿真系统所配置的副服务器2的数量),将完成当前钻井仿真计算总任务所需的由当前仿真环境形成的井筒模型,按照不同深度范围进行计算量等量或增量划分处理,得到多个(n个,n表示计算集合的总个数)计算集合。其中,每个计算集合按照井筒深度段由浅至深依次顺序排列,并进行顺序编号。
需要说明的是,演示时间需求指的是完成当前钻井仿真过程所需要的总时间,具体为当前钻井参数仿真计算总任务和计算结果演示过程总共所需要的时间,是根据实际需求所设置的,对于不同的钻井参数仿真计算总任务可以设置有不同的演示时间需求,本领域技术人员可根据实际需求来设定这一时间参数,本发明对此不作具体限定。
进一步,主服务器1在进行计算量等量划分处理(第一类划分处理模式)时,需要保证每个划分后的计算集合的计算量均相同,并且,每个计算集合对应的子任务在计算钻井参数时所耗费的时间(计算耗时)与同一计算集合对应的子任务在进行计算结果演示时所耗费的时间相同。另外,主服务器1在进行计算量增量划分处理(第二类划分处理模式)时,需要保证每个划分后的计算集合的计算量按照各计算集合排列顺序逐渐递增,并且,(从第二个计算集合开始)每个计算集合对应的子任务在计算钻井参数时所耗费的时间(计算耗时)等于前一个相邻的计算集合对应的子任务在计算钻井参数时所耗费的时间、与(前一个相邻的计算集合对应的子任务在进行)计算结果演示时所耗费的时间之和。
此处需要说明的是,在本发明实施例中,上述计算集合的总个数z需要大于仿真系统中所配置的副服务器2的总数量,这样,使得仿真总任务中的钻井参数计算阶段与钻井参数计算结果展示阶段在时间维度上进行一定的重叠,才可实现仿真计算过程与演示过程同步实施的钻井仿真过程,从而节省了整个钻井仿真过程所耗费的时间。
而后,步骤S130主服务器1将划分后的每个计算集合对应的集合任务分配给指定的副服务器2,从而进入到步骤S140中。具体地,主服务器1按照划分处理模式对应的第一类分配方式,将划分后的每个集合任务对应的(集合任务)原始数据分配给指定的副服务器2。参考图2和图4,本发明实施例所述的集合任务划分过程,是按照井筒模型不同的深度范围所划分的,使得每个集合任务对应有相应的深度范围段(如第1部分、第2部分、第3部分……、第n部分),所有的深度范围段构成为井筒模型对应的当前仿真环境的深度。在本发明实施例中,计算集合任务需要完成属于各自深度范围段的钻井参数计算任务,并得到相应深度段的钻井参数计算结果。
步骤S140多个副服务器2接收用于完成相应集合任务所需的原始数据,基于此,执行相应的钻井仿真计算,并得到相应深度段范围的钻井参数计算结果,而后将计算结果反馈至主服务器1。步骤S150主服务器1接收各集合任务对应的计算结果并进行演示。这样,由于将当前钻井仿真计算总任务实施了上述第一类或第二类的划分处理,因此,无论主服务器1将利用哪种划分方式得到的针对每个计算集合的集合任务,对应分配到指定的副服务器2中,都能够实现钻井参数计算过程与计算结果演示过程的同步进行,打破了常规钻井仿真方法中的钻井参数计算过程与计算结果演示过程有先后顺序的规律,从而基于钻井参数计算阶段与计算结果计算在时间维度上的重叠方面,提高了传统钻井仿真方法的展示速度。
实施例一
图2是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量等量划分处理时的原理示意图。图3是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量等量划分处理时的实现流程图。下面结合图2和图3,对应用计算量等量划分处理时的钻井仿真方法进行详细说明。需要说明的是,在启动当前钻井参数仿真计算总任务之前,需要搭建仿真系统,至少构建一个主服务器1、以及部署i个分布式计算服务器2。其中,i为大于0的整数。
首先,步骤S301主服务器1按照预设的仿真精度(即深度步长,例如:每0.5米深度仿真计算一个网格点,此时,每米有两个网格),将由当前仿真环境形成的井筒模型进行网格均衡化划分,而后进入到步骤S302中。通常,参考图2,井筒模型被均匀划分为若干等长网格,依次分布于井下不同深度位置处,通过深度累加迭代的方式,随着井下深度的不断增加,对钻井过程进行实时仿真计算。利用这种方式,水力参数、摩阻扭矩等不同的钻井参数井下分布的仿真计算需要按照从井口到井底、再从井底到井口的方式依据网格划分进行多次反复迭代计算,直至误差小于临界阈值,迭代计算收敛,计算量随着网格划分增多急剧增大。所述网格是由井筒模型内各个仿真迭代计算点所形成的,在均衡化网格划分操作中,每个相邻仿真迭代点之间的间隔长度均相等。
步骤S302主服务器1根据网格均衡化划分结果所得到的井筒模型,确定出完成每个网格点(即迭代计算点)处的钻井参数计算过程所需的计算量、计算耗时、计算结果演示耗时、以及完成当前钻井仿真计算(总)任务的总计算量,从而利用这些计算量和耗时参数对集合任务的划分过程进行辅助。具体地,在进行每个网格点的计算量评估时,需要考虑当前网格点的深度、迭代次数等因素,来评估完成当前网格点处的钻井参数计算过程对服务器(副服务器)资源的占有量,用以表示当前网格点处的钻井参数计算过程所需的计算量。这样,便得到了每个网格点所对应的计算量信息,进一步,参考当前钻井参数计算所涉及的计算原理、计算步骤、计算结果演示过程所涉及的流程等因素,确定每个网格点所对应的计算耗时、以及演示耗时,从而进入到步骤S303中。
步骤S303主服务器1根据每个网格点所对应的计算量、计算耗时和演示耗时、以及完成当前钻井仿真计算(总)任务的总计算量,结合上述演示时间需求,先将当前钻井仿真计算总任务,按照井筒模型的不同深度范围段划分为计算量相同的多个计算单元并进行计算单元排序,而后,根据计算单元划分结果,(从浅至深地)将每副服务器数量个的计算单元形成为相应的计算集合,使得同一计算集合内的每个计算单元对应的子任务的计算时间均与针对当前计算集合的计算结果演示时间相同,得到针对每个计算单元的原始数据,从而进入到步骤S304中。
进一步,在本发明这一实施例中,针对某一计算集合的钻井参数计算任务可当作集合计算任务,需要由主服务器1完成相应的任务分配(集合计算任务分配,就是将完成这一计算集合的钻井参数计算任务所需的原始数据分配给指定的副服务器2)后,再由所有副服务器2共同协作完成属于计算集合深度范围段的钻井参数计算任务,并得到相应深度范围段的钻井参数计算结果。每个计算子任务对应一个计算单元,需要完成属于各自深度范围段的钻井参数计算子任务,并得到相应子任务深度段的钻井参数计算结果。
进一步,在本发明这一实施例中,由于每个集合计算任务对应的计算量相同,也就是完成每个集合计算任务所耗费的时间(计算耗时)相同,并且,每个计算集合在得到相应的计算结果后的计算结果演示时间(演示耗时)也相同。另外,由于同一个计算集合中的每个计算单元的计算量是相同的,因此,完成每个子任务所耗费的时间(计算耗时)相同。
进一步,在步骤S303完成计算集合划分处理并得到针对所有计算单元的(子任务)原始数据后,还需要对所有属于不同计算集合的计算单元进行编号。具体需要按照由浅至深的井深范围,将所有依次排列的计算单元进行顺序编号,距离井口越近的计算单元所属的编号越小。更具体地说,参考图2,本发明这一实施例所述的计算单元编号过程,是按照井筒模型不同的深度范围并结合副服务器2的配置数量i所完成的,使得每个子任务对应有相应的深度范围段,如第1计算集合中的第1计算单元、第2计算单元……第i计算单元;第2计算集合中的第i+1计算单元(也就是第二计算集合中的第1个计算单元)、第i+2计算单元(也就是第二计算集合中的第2个计算单元)……第2i计算单元(也就是第二计算集合中的第i个计算单元),以此类推,完成针对所有计算集合的计算单元编号过程。
需要说明的是,在常规仿真计算方法中,由于钻井参数仿真计算总任务,是将井筒模型依据仿真精度,被均匀划分为若干等长网格(例如:网格长度为0.5米),依次分布于井下不同深度位置处,通过深度累加迭代的方式,随着井下深度的不断增加,在进行实时仿真计算时,井深越深的仿真迭代网格点所需要的计算量就越大。因此,在本发明这一实施例中,为了保障每个集合计算任务的计算量都相同,每个集合计算任务对应的井深范围可能相同,也可能不同。例如,针对流体力学类的钻井参数计算总任务来说,第1计算集合需要完成0~100米井深范围的集合计算任务,第2计算集合需要完成100~175米井深范围的集合计算任务,第3计算集合需要完成175~220米井深范围的集合计算任务……。这样,尽可能使得每个集合计算任务的计算量保持一致。同理,上述针对同一个计算集合的计算单元划分过程,也基于这一现象,由此,在本发明这一实施例中,为了保障每个计算单元子任务的计算量都相同,每个子任务对应的井深范围可能相同,也可能不同。
步骤S304主服务器1检测各个副服务器2的空闲状态,在各副服务器2均处空闲状态时,进入到步骤S305中。具体地,主服务器1对每个副服务器2是否正在执行计算子任务进行实时检测,若没有(或者已经完成针对上一计算集合的计算子任务),则表示当前副服务器2处于空闲状态;否则,表示当前副服务器2处于忙状态。
步骤S305主服务器1在各副服务器2均处于空闲状态时,按照计算集合的排列顺序,筛选出具有最小编号且未进行集合计算任务分配的计算集合,并将这一计算集合内分别用于完成该集合中的各计算单元对应的子任务所需的(子任务)原始数据,同时分配给不同的副服务器2,从而完成针对当前计算集合的集合计算任务分配操作,继而进入到步骤S306中。这样,便使得每个副服务器2都获得了属于自身的子任务原始数据,以利用相应的子任务原始数据进行基于相应子任务的钻井仿真计算。
参考图2,主服务器1在生成针对不同深度范围段的子任务原始数据后,将筛选出的当前需要进行集合计算任务分配的计算集合内属于不同计算单元(编号)的子任务原始数据发送至具有相同编号的副服务器2中。具体地,若当前第1计算集合未进行集合计算任务分配,则将第1计算集合内的第1计算单元对应的子任务原始数据发送至1号副服务器2,将第1计算集合内的第2计算单元对应的子任务原始数据发送至2号副服务器2,将将第1计算集合内的第3计算单元对应的子任务原始数据发送至3号副服务器2,以此类推,完成针对第1计算集合的集合计算任务指定分配操作。若当前第1计算集合以完成集合计算任务操作,主服务器1筛选出具有最小编号且未进行集合计算任务分配的第2计算集合,则将第2计算集合内的第1计算单元对应的子任务原始数据发送至1号副服务器2,将第2计算集合内的第2计算单元对应的子任务原始数据发送至2号副服务器2,将第2计算集合内的第3计算单元对应的子任务原始数据发送至3号副服务器2,以此类推,完成针对第2计算集合的集合计算任务指定分配操作。
而后,步骤S306每个副服务器2同时接收完成相应子任务所需的原始数据,执行相应子任务下的钻井仿真计算,得到每个子任务的子任务计算结果,从而在所有副服务器2的共同协作下完成针对同一计算集合的集合计算任务,然后,将各个子任务计算结果同时反馈至主服务器1,从而进入到步骤S307中。具体地,参考图2,在针对第1计算集合的集合任务来说,1号副服务器需要完成针对第1计算单元对应的深度范围段下的钻井参数计算任务;2号副服务器需要完成针对第2计算单元对应的深度范围段下的钻井参数计算任务;以此类推,i号副服务器需要完成针对第i计算单元对应的深度范围段下的钻井参数计算任务。
需要说明的是,在步骤S306中,各服务器2同时接收相应的子任务原始数据,以同步并行方式执行相应子任务下的钻井仿真计算。由此,在本发明这一实施例中完成针对同一计算集合的钻井参数计算任务(也就是集合计算任务)所对应的计算耗时,与同一计算集合内各个计算单元的子任务所对应的计算耗时是一致的,并且每个计算单元完成属于自身的子任务的结束时刻是尽可能相同的。
步骤S307在结束针对当前计算集合的钻井参数计算任务后,主服务器1判断当前是否完成所有计算集合的钻井参数计算任务,若未完成,则进入到步骤S308,并立即返回至上述步骤S304,以在所有副服务器2完成针对当前计算集合的所有计算子任务并处于空闲状态后,开始针对下一个相邻计算集合进行集合计算任务分配并执行相应的钻井参数计算任务。步骤S308主服务器1同时接收步骤S306得到的来自各副服务器2的子任务计算结果(同时接收到的各个子任务计算结果均属于同一计算集合),并按照每个子任务对应的深度范围或钻井时间(由浅至深的)进行顺序演示,实现同一计算集合内的各个计算单元之间的无时间间隔演示。另外,在完成针对当前计算集合的结果演示后,在接收到针对下一个相邻计算集合内的各个子任务计算结果后,对下一个相邻计算集合的集合任务计算结果进行演示,从而实现针对每个计算集合之间的无时间间隔地演示。
另外,若主服务器1判断当前已经完成所有计算集合的钻井参数计算任务,则进入到步骤S308中,利用步骤S306得到的针对最后一个计算集合的计算结果,对最后一个计算进行无时间间隔演示,从而结束当前钻井仿真任务。
需要说明的是,由于在应用计算量等量划分处理时,会使得同一个计算集合中的每个计算单元在完成相应子任务时所耗费的计算时间是相同的,因此,每个计算单元在完成相应子任务的结束时间也是相同的,由此,在本发明这一实施例中,所有副服务器2处于空闲状态和忙碌状态的变化可以看作是同步动作的。若其中某一副服务器2从忙状态转换至空闲状态,则其他所有服务器2也均从忙状态转换至空闲状态;反过来,若其中某一副服务器2从空闲状态转换至忙状态,则其他所有服务器2也均从空闲状态转换至忙状态。
另一方面,对于同一计算集合来说,在完成针对这一计算集合的集合计算任务所对应的计算耗时、针对这一计算集合内每个计算单元在完成相应子任务的计算耗时、以及针对这一计算集合内所有子任务计算结果的演示耗时时间都是相同的,因此,步骤S308进行针对某一计算集合的所有子任务计算结果的演示过程,与后续针对下一相邻计算集合的集合计算任务的执行过程是同步进行的,并且二者所耗费的时间也是近似相同的。更进一步地说,在主服务器1接收到针对某一(当前)计算集合的钻井参数计算结果并进行演示时,所有副服务器2在同步执行针对下一个相邻计算集合的集合计算任务(子任务计算任务也在同步执行),在主服务器1完成针对当前计算集合的钻井参数计算结果演示后,所有副服务器2针对下一个相邻计算集合的子任务计算任务也同步完成,此时,主服务器1接收到针对下一个相邻计算集合的钻井参数计算结果并进行演示,并且,所有副服务器2在同步执行针对下下一个相邻计算集合的集合计算任务,以此类推。这样,本发明这一实施例在主服务器1采用计算量等量划分处理对当前钻井参数仿真计算总任务进行划分时,利用主服务器1进行结果演示的同时,所有副服务器2交叉顺次承担后续计算集合的钻井参数计算任务,实现了钻井参数计算阶段与计算结果演示阶段在时间维度上的重叠,大大提高了传统钻井仿真方法的展示速度,提高仿真结果对决策支持的时效性。
参考图2和图3,下面针对本发明这一实施例所述的基于分布式等量交叉计算的仿真方法的具体应用过程进行说明:
(1)对当前仿真井钻井井筒进行仿真计算网格划分,根据网格划分数量预估整个钻井仿真的计算量;
(2)根据钻井仿真演示时间需求,将全井筒仿真计算量进行等分形成z个计算单元;
(3)按照分布式计算服务器数量将每i个计算单元划分为1个计算集合,z个计算单元形成为n个计算集合;
(4)将1个计算集合内的i个计算单元顺次分配给i个分布式计算服务器(1→1,2→2,…,i→i);
(5)在计算性能一致的情况下,分布并行计算每个计算单元的计算耗时均为X,也就是每个计算集合的计算耗时整体为X;1个计算集合仿真计算完成之后,结果发送至主服务器1;
(6)主服务器1按照计算单元顺序,顺次对第1计算集合的i个计算单元的仿真结果进行演示,1个计算集合的仿真结果演示耗时为X;
(7)在第1个计算集合仿真结果演示过程中,分布式计算服务器同步进行第2个计算集合的仿真计算(i+1→1,i+2→2,…,2i→i)二者耗时相同,同时完成后,进入步骤(8);
(8)将第2个计算集合内的i个计算单元顺次分配给i个分布式计算服务器(如i+1→1,i+2→2,…,2i→i);
(9)在计算性能一致的情况下,各个计算服务器并行计算完成第2个计算集合的计算耗时整体为X,仿真计算完成之后,结果发送至主服务器1;
(10)每个计算集合计算耗时与演示耗时相同,均为X,第1个计算集合演示完成同时可获得第2个计算集合仿真结果进行连续仿真演示;
(11)重复步骤(7)-(10),完成后续计算集合的仿真计算与演示,实现全井钻井连续的仿真计算与演示。在计算过程中,每个分布式计算服务器承担的计算单元均是交叉不连续的(如1号计算服务器承担1,i+1,2i+1,…等计算单元;2号计算服务器承担2,i+2,2i+2,…等计算单元),依此循环,可在提升钻井仿真速度压缩演示等待时间的基础上,实现连续的钻井仿真计算与演示。
实施例二
图4是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量增量划分处理时的原理示意图。图5是本申请实施例的用于提高钻井仿真速度的方法中在应用计算量增量划分处理时的实现流程图。需要说明的是,在启动当前钻井参数仿真计算总任务之前,需要搭建仿真系统,至少构建一个主服务器1、以及部署i个分布式计算服务器2。其中,i为大于0的整数。
首先,步骤S501主服务器1按照预设的仿真精度(即深度步长,例如:每0.5米深度仿真计算一个网格点,此时,每米有两个网格),将由当前仿真环境形成的井筒模型进行网格均衡化划分,而后进入到步骤S502中。通常,参考图4,井筒模型被均匀划分为若干等长网格,依次分布于井下不同深度位置处,通过深度累加迭代的方式,随着井下深度的不断增加,对钻井过程进行实时仿真计算。利用这种方式,水力参数、摩阻扭矩等不同的钻井参数井下分布的仿真计算需要按照从井口到井底、再从井底到井口的方式依据网格划分进行多次反复迭代计算,直至误差小于临界阈值,迭代计算收敛,计算量随着网格划分增多急剧增大。所述网格是由井筒模型内各个仿真迭代计算点所形成的,在均衡化网格划分操作中,每个相邻仿真迭代点之间的间隔长度均相等。
步骤S502主服务器1根据网格均衡化划分结果所得到的井筒模型,确定出完成每个网格点(即迭代计算点)处的钻井参数计算过程所需的计算量、计算耗时、计算结果演示耗时、以及完成当前钻井仿真计算(总)任务的总计算量,从而利用这些计算量和耗时参数对集合任务的划分过程进行辅助。具体地,在进行每个网格点的计算量评估时,需要考虑当前网格点的深度、迭代次数等因素,来评估完成当前网格点处的钻井参数计算过程对服务器(副服务器)资源的占有量,用以表示当前网格点处的钻井参数计算过程所需的计算量。这样,便得到了每个网格点所对应的计算量信息,进一步,参考当前钻井参数计算所涉及的计算原理、计算步骤、计算结果演示过程所涉及的流程等因素,确定每个网格点所对应的计算耗时、以及演示耗时,从而进入到步骤S503中。
步骤S503主服务器1根据每个网格点所对应的计算量、计算耗时和演示耗时、以及完成当前钻井仿真计算(总)任务的总计算量,结合上述演示时间需求,将当前钻井仿真计算总任务,按照井筒模型的不同深度范围段划分为计算量逐渐增加的多个计算集合并进行计算集合排序,使得(从第二个计算集合开始)每个计算集合i对应的子任务的计算耗时等于前一个相邻计算集合i-1的计算耗时与其i-1计算结果演示过程的耗时之和,得到针对每个计算集合的原始数据,从而进入到步骤S504中。
进一步,在本发明这一实施例中,针对某一计算集合的钻井参数计算任务可当作集合计算任务,需要由主服务器1完成相应的任务分配(集合计算任务分配,就是将完成这一计算集合的钻井参数计算任务所需的原始数据分配给指定的副服务器2)后,再由被指定的副服务器2完成属于当前计算集合对应的深度范围段的钻井参数计算任务,并得到相应深度范围段的钻井参数计算结果。每个计算子任务对应一个计算集合,需要完成属于各自集合深度范围段的钻井参数计算任务,并得到相应深度段的钻井参数计算结果。
进一步,在步骤S503完成计算集合划分处理并得到相应的原始数据后,还需要对所有依次排列的计算集合进行编号,距离井口越近的计算集合所属的编号越小。具体地,参考图4,本发明实施例所述的计算集合编号过程,是按照井筒模型不同的深度范围所完成的,使得每个子任务对应有相应的深度范围段,如第1计算集合、第2计算集合……第i计算集合、第i+1计算集合、第i+2计算集合……第z计算集合,从而完成针对所有计算集合编号过程。
进一步,在本发明这一实施例中,由于每个集合计算任务对应的计算量随着井深的增加而增加的。具体地,参考图4,从第2计算集合开始,第i计算集合在完成相应计算子任务时所耗费的时间(计算耗时)等于第i-1计算集合在完成相应计算子任务时所耗费的时间(计算耗时)与第i-1计算集合在完成相应子任务计算结果演示时所耗费的时间(演示耗时)之和。由此,在本发明这一实施例中,第i计算集合的计算量是大于第i-1计算集合的。
步骤S504主服务器1按照各个副服务器2的编号,利用轮询机制,顺次检测各个副服务器2的空闲状态。其中,在检测到有副服务器2处于空闲状态时,进入到步骤S505中。具体地,按照各个副服务器2的编号,主服务器1对每个副服务器2是否正在执行计算子任务进行实时的轮询检测(先检测1号副服务器2、而后检测2号副服务器2……直到检测到i号副服务器2,如此循环),若副服务器2正在执行计算子任务,则表示当前副服务器2处于忙状态;否则,表示当前副服务器2处于空闲状态。需要说明的是,由于步骤S504是按照副服务器2的编号并利用轮询机制来进行检测的,因此,若检测到某一副服务器2处于空闲状态,则该副服务器2是所有处于空闲状态中编号最小的计算服务器,以在步骤S505进行集合计算任务分配时,将未分配的计算量最小的任务直接分配给该计算服务器。
步骤S505主服务器1在当前副服务器2处于空闲状态时,按照计算集合的排列顺序,筛选出具有最小编号且未进行集合计算任务分配的计算集合,并将这一计算集合对应的子任务所需的(子任务)原始数据,发送至当前(处于空闲状态且副服务器编号最小的)副服务器2内,从而完成针对当前计算集合的集合计算任务分配操作。这样,便使得当前副服务器2获得属于自身的子任务原始数据,以利用相应的子任务原始数据进行基于该子任务的钻井仿真计算。另外,主服务器1在检测到所有副服务器2均处于忙状态时,进入到步骤S506。
参考图4,主服务器1在生成针对不同深度范围段的子任务原始数据后,将筛选出的当前需要进行集合计算任务分配的计算集合分配给、处于空闲状态且副服务器编号最小的副服务器2。具体地,若当前第1计算集合未进行集合计算任务分配,则将第1计算集合对应的子任务原始数据发送至1号副服务器2;在第1计算集合分配完且1号副服务器处于忙状态后,将第2计算集合对应的子任务原始数据发送至2号副服务器2;以此类推……;在第i-1计算集合分配完且i-1号副服务器处于忙状态后,将第i计算集合对应的子任务原始数据发送至i号副服务器2。需要说明的是,由于对于前i个计算集合分配给i个副服务器的过程所耗费的时间是非常快的,远远小于1号副服务器2完成针对第1计算集合的子任务所耗费的时间,由此,i个副服务器2分别完成前i个计算集合对应的子任务的过程可以看成是同步开始的。另外,由于1号副服务器2所分配的第1计算集合的计算量是最小的,故1号服务器最先完成相应的子任务并进入空闲状态,此时,主服务器1会继续将当前未进行集合计算任务分配的第i+1计算集合分配给1号副服务器2,而后,2号服务器最先完成相应的子任务并进入空闲状态,此时,主服务器1会继续将当前未进行集合计算任务分配的第i+2计算集合分配给2号副服务器2,以此类推,从而实现钻井参数计算阶段、计算结果演示阶段和计算集合任务分配阶段在时间维度上重叠的同步效果。
步骤S506当前副服务器2接收完成相应子任务所需的原始数据,执行相应子任务下的钻井仿真计算,得到针对该子任务的子任务计算结果,从而完成针对相应计算集合的集合计算任务,然后,将当前得到的子任务计算结果反馈至主服务器1,从而进入到步骤S507中。具体地,参考图4,1号副服务器需要完成针对第1计算集合、第i+1计算集合、第2i+1计算集合……对应的深度范围段下的钻井参数计算任务;2号副服务器需要完成针对第2计算集合、第i+2计算集合、第2i+2计算集合……对应的深度范围段下的钻井参数计算任务;3号副服务器需要完成针对第3计算集合、第i+3计算集合、第2i+3计算集合……对应的深度范围段下的钻井参数计算任务,以此类推。
步骤S507在结束针对当前计算集合的钻井参数计算任务后,主服务器1判断当前是否完成所有计算集合的钻井参数计算任务,若未完成,则进入到步骤S508,并立即返回至上述步骤S504,以在有副服务器2完成针对相应计算集合的计算子任务并处于空闲状态后,为其分配新的计算集合对应的子任务原始数据。步骤S508主服务器1依次接收步骤S506中得到的来自副服务器2的子任务计算结果,并按照每个子任务对应的深度范围或钻井时间进行(由浅至深的)顺序演示,实现每个计算集合之间的无时间间隔的演示。也就是说,主服务器1需要完成针对当前计算集合的结果演示,以在接收到针对下一个相邻计算集合的子任务计算结果后,进行每个计算集合之间无时间间隔的演示。
另外,若主服务器1判断当前已经完成所有计算集合的钻井参数计算任务,则进入到步骤S508中,利用步骤S506得到的针对最后一个计算集合的计算结果,对最后一个计算进行演示,从而结束当前钻井仿真任务。
需要说明的是,由于在应用计算量增量划分处理时,会使得从第2个计算集合开始,每个计算集合在完成相应子任务并得到相应计算结果的时刻的同时,主服务器1针对前一相邻计算集合得到的计算结果的演示过程也刚好结束,此时,主服务器1在对前一计算集合完成计算结果演示后,无时间间隔的继续对当前计算集合的计算结果进行演示。
更进一步地说,在主服务器1接收到针对某一(当前)计算集合的当前钻井参数计算结果并进行演示时,完成当前计算集合对应的计算子任务的副服务器2进入了空闲状态,此时,一方面,主服务器1为当前处于空闲状态的副服务器2分配新的计算集合任务并使得当前副服务器2执行新的计算集合任务,与此同时,主服务器1同时开始演示当前副服务器2之前得到的钻井参数计算结果。这样,本发明这一实施例在主服务器1采用计算量增量划分处理对当前钻井参数仿真计算总任务进行划分时,利用主服务器2进行结果演示的同时,处于空闲状态的副服务器2交叉承担后续计算集合的钻井参数计算任务,实现了钻井参数计算阶段、计算结果演示阶段、以及集合任务分配阶段,在时间维度上的重叠,大大提高了传统钻井仿真方法的展示速度,提高仿真结果对决策支持的时效性。
参考图4和图5,下面针对本发明这一实施例所述的基于分布式增量交叉计算的仿真方法的具体应用过程进行说明:
(1)对当前仿真井钻井井筒进行仿真计算网格划分,根据网格划分数量预估整个钻井仿真的计算量;
(2)根据用户的钻井仿真演示时间需求、以及分布式计算服务器数量将全井筒的仿真计算量以增量的方式划分为z个计算集合;
(3)从第1个单元开始,将i个计算单元顺次分配给分布式计算服务器,使得各计算服务器并行仿真计算(如1→1,2→2,…,i→i);
(4)第1个计算集合首先完成仿真计算,结果发送至主服务器1进行钻井仿真演示,而1号分布式计算服务器则交叉承担后续的计算集合继续执行仿真计算(例如i+1→1,2i+1→1,3i+1→1,…);
(5)第1个计算集合仿真结果的演示与第2个计算集合仿真计算同步完成,主服务器1继续进行第2个计算集合仿真结果的演示,即第2个计算集合仿真计算时间等于第1个计算单元仿真计算时间与第1个计算单元结果演示时间之和;
(6)第2个计算集合仿真计算完成进行仿真结果演示时,2号分布式计算服务器则交叉承担后续的计算单元继续执行仿真计算(例如i+2→2,2i+2→2,3i+2→2,…),第2个计算集合仿真结果的演示与第3个计算集合仿真计算同步完成;
(7)如此循环,分布式计算服务器交叉承担计算集合顺次完成仿真计算及结果演示,可在压缩仿真演示的等待时间的基础上,实现全井钻井连续的仿真计算与演示过程的同步进行,以此提高钻井仿真速度。
本发明实施例利用上述基于分布式增量或等量交叉计算的仿真方法,来提高钻井仿真演示过程速度的方法,在胜利油田Y井钻井仿真中进行应用,具体实施流程如下:
(1)录入Y井钻井仿真计算相关数据;
(2)搭建一定数量的分布式计算服务器与一个主服务器;
(3)用户设置预期的仿真演示等待时间(演示时间需求)后,仿真系统对Y井全井筒划分仿真计算网格并预估计算量;
(4)根据预期演示等待时间将仿真计算量以等量或者以增量的方式进行计算集合划分,应用本发明的方法进行Y井的钻井仿真计算与演示;
(5)通过对Y井全井进行钻井仿真,将本发明的应用效果与常规先仿真后演示的方法进行对比,用户设置仿真演示等待时间最短可为5s,大幅压缩了常规方法30-90min的演示等待时间,证明本发明的方法可以有效实现钻井仿真演示速度的提升。
另一方面,基于上述所述的用于提高钻井仿真速度的方法,本发明还提出了一种用于提高钻井仿真速度的系统,该系统利用上述所述的仿真方法来提高当前钻井参数仿真计算任务的钻井仿真演示速度。图6是本申请实施例的用于提高钻井仿真速度的系统的结构示意图。如图6所示,上述系统包括:主服务器1和多个副服务器2。主服务器1用于获取当前仿真计算任务所需的原始数据,根据演示时间需求和参与完成当前任务的副服务器数量,将由当前仿真环境形成的井筒模型,按照不同深度范围进行计算量等量或增量划分处理,得到多个计算集合,而后,将划分后的每个计算集合对应的集合任务分配给指定的副服务器2,以及接收并演示各集合任务的计算结果。其中,计算量等量划分处理为每个计算集合的计算量相同且每个计算集合的计算耗时与其演示耗时相同;计算量增量划分处理为每个计算集合的计算耗时等于其前一个计算集合的计算耗时和演示耗时之和。多个副服务器2用于接收完成相应集合任务所需的原始数据,执行相应的钻井仿真计算。
优选地,多个副服务器2配置为分布式并行计算服务器。
本发明提出了一种用于提高钻井仿真速度的方法及系统。该方法及系统应用分布式计算技术,在部署i台分布式计算服务器和一台主服务器、并进行全井筒钻井仿真计算量预估之后,根据钻井仿真演示速度需求将全井筒迭代计算量进行z等分,由i个分布式计算主机顺次同时承担i份计算单元作为一个集合进行仿真,完成后将计算结果输送至主服务器顺次进行仿真结果演示,在第1计算集合仿真结果演示过程中,i个分布式计算主机执行第2计算集合;或者,根据钻井仿真演示时间需求,将全井筒迭代计算量以增量的方式划分成多个计算集合,由分布式计算服务器顺次承担i份计算集合并行仿真计算,后一计算集合仿真计算的时间等于前一计算单元仿真计算及演示时间之和,各分布式计算服务器顺次完成仿真计算后,将结果发送至主服务器,进行连续的仿真结果演示,各分布式计算服务器交叉承担后续的计算单元进行仿真计算,如此循环。综上所述,本发明改变了以往先仿真计算后仿真演示的流程,实现同步仿真同步演示(边仿真计算边演示),提高钻井仿真演示速度,为现场工程师和学科专家提供更加及时的决策参考,从而提高钻井仿真结果对决策支持的时效性。
虽然本发明所披露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种用于提高钻井仿真速度的方法,其特征在于,包括:
获取当前仿真计算任务所需的原始数据;
根据演示时间需求和参与完成当前任务的副服务器数量,将由当前仿真环境形成的井筒模型,按照不同深度范围进行计算量等量或增量划分处理,得到多个计算集合,其中,计算量等量划分处理为每个计算集合的计算量相同且每个计算集合的计算耗时与其演示耗时相同,计算量增量划分处理为每个计算集合的计算耗时等于其前一个计算集合的计算耗时和演示耗时之和;
将每个计算集合对应的集合任务分配给指定的所述副服务器;
多个所述副服务器接收完成相应集合任务所需的原始数据,执行相应的钻井仿真计算;
接收并演示各所述集合任务的计算结果。
2.根据权利要求1所述的方法,其特征在于,在进行计算量等量划分处理时,进一步,
按照预设的仿真精度,将所述井筒模型进行网格划分,并确定计算每个网格的计算量、计算耗时、演示耗时以及完成当前任务的总计算量;
根据计算量信息和耗时信息,先将当前任务按照所述井筒模型的不同深度范围段划分为计算量相同的多个计算单元并进行排序,而后将每所述副服务器数量个的计算单元形成为相应的计算集合,使得每个所述计算单元对应的子任务的计算时间与针对所述计算集合的计算结果演示时间相同,得到针对每个计算单元的原始数据。
3.根据权利要求1或2所述的方法,其特征在于,在将每个计算集合对应的集合任务分配给指定的所述副服务器步骤中,包括:
检测各副服务器的空闲状态;
在所述各副服务器均处于空闲状态时,按照计算集合的排列顺序,筛选出具有最小编号且未进行集合任务分配的计算集合,并将该集合内分别用于完成各计算单元对应的子任务所需的原始数据,同时分配给不同的所述副服务器,使得各所述副服务器利用属于自身的原始数据进行钻井仿真计算。
4.根据权利要求3所述的方法,其特征在于,在接收并演示各所述集合任务的计算结果步骤中,包括:
同时接收来自各所述副服务器的子任务计算结果,并按照相应的深度和/或钻井时间维度进行针对当前计算集合的结果演示,以在接收到针对下一个相邻计算集合内的各所述子任务计算结果后,进行无时间间隔演示。
5.根据权利要求1所述的方法,其特征在于,在进行计算量增量划分处理时,进一步,
按照预设的仿真精度,将所述井筒模型进行网格划分,并确定计算每个网格的计算量、计算耗时、演示耗时以及完成当前任务的总计算量;
根据计算量信息和耗时信息,将当前任务按照所述井筒模型的不同深度范围段划分为计算量增量的多个计算集合,得到针对每个计算集合的原始数据。
6.根据权利要求1或5所述的方法,其特征在于,在将每个计算集合对应的集合任务分配给指定的所述副服务器步骤中,包括:
按照各所述副服务器的编号,利用轮询机制,依次检测各所述副服务器的空闲状态;
若当前副服务器处于空闲状态,则按照计算集合的排列顺序,筛选出具有最小编号且未进行集合任务分配的计算集合,并将该计算集合对应的子任务所需的原始数据发送至所述当前副服务器,使得所述当前副服务器利用属于自身的原始数据进行钻井仿真计算。
7.根据权利要求6所述的方法,其特征在于,在接收并演示各所述集合任务的计算结果步骤中,包括:
依次接收来自各所述副服务器的子任务计算结果,并按照相应的深度和/或钻井时间维度维度进行无时间间隔演示。
8.根据权利要求2~4中任一项所述的方法,其特征在于,在多个所述副服务器接收完成相应集合任务所需的原始数据,执行相应的钻井仿真计算步骤中,包括:
各所述服务器同时接收相应的子任务原始数据,以同步并行方式执行相应的钻井仿真计算任务。
9.一种用于提高钻井仿真速度的系统,其特征在于,所述系统利用如权利要求1~8中任一项所述的方法来提高钻井仿真演示速度,其中,所述系统包括:
主服务器,其用于获取当前仿真计算任务所需的原始数据,根据演示时间需求和参与完成当前任务的副服务器数量,将由当前仿真环境形成的井筒模型,按照不同深度范围进行计算量等量或增量划分处理,得到多个计算集合,而后,将每个计算集合对应的集合任务分配给指定的所述副服务器,以及接收并演示各所述集合任务的计算结果,其中,计算量等量划分处理为每个计算集合的计算量相同且每个计算集合的计算耗时与其演示耗时相同,计算量增量划分处理为每个计算集合的计算耗时等于其前一个计算集合的计算耗时和演示耗时之和;
多个所述副服务器,其用于接收完成相应集合任务所需的原始数据,执行相应的钻井仿真计算。
10.根据权利要求9所述的系统,其特征在于,多个所述副服务器配置为分布式并行计算服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010051289.5A CN113139261B (zh) | 2020-01-17 | 2020-01-17 | 一种用于提高钻井仿真速度的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010051289.5A CN113139261B (zh) | 2020-01-17 | 2020-01-17 | 一种用于提高钻井仿真速度的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113139261A true CN113139261A (zh) | 2021-07-20 |
CN113139261B CN113139261B (zh) | 2024-02-09 |
Family
ID=76808523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010051289.5A Active CN113139261B (zh) | 2020-01-17 | 2020-01-17 | 一种用于提高钻井仿真速度的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113139261B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020046273A1 (en) * | 2000-01-28 | 2002-04-18 | Lahr Nils B. | Method and system for real-time distributed data mining and analysis for network |
US20090089030A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Distributed simulation and synchronization |
CN102436531A (zh) * | 2011-11-25 | 2012-05-02 | 北京航空航天大学 | 一种基于分布式组件的高光谱数据仿真及应用平台 |
CN103781107A (zh) * | 2012-10-22 | 2014-05-07 | 中兴通讯股份有限公司 | 无线通信网络的仿真、仿真处理方法及装置 |
CN104239661A (zh) * | 2013-06-08 | 2014-12-24 | 中国石油化工股份有限公司 | 一种大规模油藏数值模拟计算的方法 |
CN104933943A (zh) * | 2015-01-22 | 2015-09-23 | 中国石油技术开发公司 | 一种陆地钻机安装操作模拟系统及其操作方法 |
CN107358352A (zh) * | 2017-07-05 | 2017-11-17 | 国网山东省电力公司电力科学研究院 | 基于蒙特卡洛模拟的电力系统可靠性评估系统及方法 |
-
2020
- 2020-01-17 CN CN202010051289.5A patent/CN113139261B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020046273A1 (en) * | 2000-01-28 | 2002-04-18 | Lahr Nils B. | Method and system for real-time distributed data mining and analysis for network |
US20090089030A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Distributed simulation and synchronization |
CN102436531A (zh) * | 2011-11-25 | 2012-05-02 | 北京航空航天大学 | 一种基于分布式组件的高光谱数据仿真及应用平台 |
CN103781107A (zh) * | 2012-10-22 | 2014-05-07 | 中兴通讯股份有限公司 | 无线通信网络的仿真、仿真处理方法及装置 |
CN104239661A (zh) * | 2013-06-08 | 2014-12-24 | 中国石油化工股份有限公司 | 一种大规模油藏数值模拟计算的方法 |
CN104933943A (zh) * | 2015-01-22 | 2015-09-23 | 中国石油技术开发公司 | 一种陆地钻机安装操作模拟系统及其操作方法 |
CN107358352A (zh) * | 2017-07-05 | 2017-11-17 | 国网山东省电力公司电力科学研究院 | 基于蒙特卡洛模拟的电力系统可靠性评估系统及方法 |
Non-Patent Citations (1)
Title |
---|
张荣;李衷怡;: "分布式三维重建中任务分配算法研究", 计算机与数字工程, no. 11 * |
Also Published As
Publication number | Publication date |
---|---|
CN113139261B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106104590B (zh) | 不确定性下多级油田设计优化 | |
CA2870472C (en) | Reservoir simulation with scalable grid computing | |
US10422923B2 (en) | Systems and methods for modeling fracture networks in reservoir volumes from microseismic events | |
US20040098291A1 (en) | Apparatus and method for visualizing resource consumption | |
CA2955920C (en) | Optimizing multistage hydraulic fracturing design based on three-dimensional (3d) continuum damage mechanics | |
CN105452598B (zh) | 选择和优化用于产量平台的油田控制的方法 | |
US11379640B2 (en) | Reservoir regions management with unstructured grid reservoir simuation model | |
EP2795528A2 (en) | Systems and methods for estimating fluid breakthrough times at producing well locations | |
CN103065051A (zh) | 一种对岩体自动进行分级分区的方法 | |
CN114651195A (zh) | 多尺度受激岩石体积应力条件的地质力学建模 | |
CN113139261A (zh) | 一种用于提高钻井仿真速度的方法及系统 | |
CN113139704B (zh) | 一种用于钻井仿真的钻井多参数计算系统及方法 | |
CN108804722B (zh) | 一种用于钻井仿真的参数计算方法及装置 | |
CN111259509B (zh) | 一种钻井过程仿真方法以及系统 | |
CN113139260B (zh) | 一种用于提高钻井仿真计算速度的系统及方法 | |
CN115392067A (zh) | 基于flac3d的采动覆岩离层模拟方法和装置 | |
CN111894545B (zh) | 一种支撑剂泵注方案确定方法 | |
CN113139263A (zh) | 用于提高钻井仿真计算速度和准确性的方法及系统 | |
CN111259465B (zh) | 一种钻井过程仿真方法以及系统 | |
CN111259508B (zh) | 一种钻井过程仿真方法以及系统 | |
Absalyamov et al. | Coupled static and dynamic high resolution modelling on high performance computer clusters | |
CN111339621B (zh) | 一种钻井过程仿真方法以及系统 | |
Disiyona et al. | Uncertainty Analysis Workflow to Estimate Oil and Gas Reserves as A Guideline for Field Development Planning | |
Disiyona | Uncertainty Analysis Workflow to Estimate Oil and Gas Reserves as A Guideline for Field | |
CN116562009A (zh) | 一种油砂sagd开发动用储量确定方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |