随着石油勘探目标日趋复杂和勘探技术的提高,高精度的处理方法越来越普及,而高精度的处理方法往往伴随巨大的计算量,因此对计算机软硬件计算能力的要求也越来越高.随着“一体化采集模式”的出现,对数据处理周期的要求却越来越短,以往对地震数据的串行处理方式已不能完全满足数据处理周期的要求.随着物探装备的发展,宽方位、高密度勘探技术的成功应用,物探采集到的数据量已由原来的每炮几百道发展到了每炮几千道甚至几万道,从而导致地震数据量的倍增,使得对海量数据处理变得日益迫切.由于这些新需求的出现,高性能计算、并行计算和海量数据处理已成为地震采集系统发展的必然趋势 (张军华等, 2010).
近年来,计算机软硬件技术日新月异,多核CPU,众核CPU以及GPU的出现不断提升着计算机硬件的运算能力,以网格计算和云计算 (Gandotra et al., 2011; Hashemi and Bardsiri, 2012; AlHakami et al., 2012) 为代表的并行计算、分布式计算技术也正在改变着人类的计算方式和计算规模.网格计算 (Luther et al., 2003; Pardeshi et al., 2013),能够聚合地理位置不同的各种分布式资源,用于解决大规模工程和科学问题,典型项目有Oracle Grid Engine、美国自然科学基金会的TeraGrid,中国国家网格等.云计算 (Endo et al., 2010; Gómez et al., 2012; Samanthula et al., 2015) 是网格计算、并行计算和分布式计算的发展,是一种新兴的商业计算模式,在航天、气象、生物等多个领域有着成功应用,典型代表有Apache Hadoop,Amazon Web Services等.网格计算和云计算提高了计算效率和计算能力,生产了巨大经济效益,推动了生产的进度,但是也存在一些不足,商业云的使用费用高昂,对于中小规模的计算不太适用;搭建私有云或计算网格需要一定的技术和运维成本;知名的网格计算和云计算都是通用的计算框架,结构庞大,提供的接口复杂,开发人员需要经过深入学习和培训才具备二次开发的能力,提高了开发和维护成本;网格计算和Hadoop的MapReduce (Lee et al., 2012) 等通常对并行计算模式进行高度的精简和抽象,设计时通常采用的是单层的、基于数据或任务划分的并行处理方式,不能直接支持迭代和同步等,复杂算法实现困难,简洁的模型设计此时也成为程序设计者的困扰.
本文在跟踪和分析国内外高性能计算发展现状的基础上,针对石油物探生产环境和应用开发特点,以网格计算为基础,将插件技术和工作流技术融合到多机并行计算过程当中,利用C++、QT、Boost实现了一套自主知识产权的商业化软件产品.该软件是一套轻量级的并行框架 (Da et al., 2011),可充分发挥现有资源的潜力,用户只要在空闲计算机上安装一个很小的客户端软件,即可搭建一个自己的“私有云”来实现中小规模的多机并行计算,而不需要额外购买新设备.整个软件采用智能操作,用户不需要培训即可使用,运维成本低廉.该软件可以在windows、Linux不同的操作系统上运行,不但能整合多机计算资源,还可以充分发挥集群乃至异构设备的硬件性能,适应石油物探室内和野外处理环境差异巨大,软硬件环境多样的现况.
并行框架采用“平台+插件+工作流”方式实现,为石油物探提供了一体化的分布式并行计算解决方案.本文实现了一套高效、精简的插件平台 (Ahmed et al., 2006; Wolfinger et al., 2011),其中多机并行框架以“平台+插件”的方式为用户提供了基础的、可靠的多机并行计算环境,让用户更专注于应用程序的开发,降低了多机并行程序的开发难度,缩短软件开发周期.本系统定义了一套基于C++的通用插件接口,通过实现插件接口即可完成并行插件开发,开发过程简捷,用户可在不修改程序主体的情况下添加新的并行算法,实现了软件功能的动态“生长”,满足不同用户的个性化定制要求;在运行过程中,可“即插即用”的实现不同应用的多机并行计算,使并行框架具有极强的动态扩展性和复用性;引入工作流技术 (van der Aalst and van Hee, 2004; Soma et al., 2007; Deelman et al., 2009),定义并实现了一套基于插件的并行计算过程规范,基于此规范不但可以定义和描述复杂作业流程,而且还可以按定制的作业流程来组织和协调插件和网络资源高效地运作,这种将控制逻辑和业务逻辑相分离的技术,满足不同算法对流程及资源的差异化需求,简化了系统结构和编程模式.通过采用插件和工作流技术,多机并行框架以一种多层级、可定制、可扩展的弹性技术手段满足了不同业务功能、不同业务流程的用户需求.
本文首先介绍了并行框架的工作原理,然后详细讲解了并行框架的设计实现技术,包括所采用的插件技术和工作流技术,最后以非线性初至波走时层析为例对多机并行计算的开发和应用效果进行说明,并在文章结尾给出结论.
1 并行框架原理并行框架的设计目标是利用空闲的异构计算资源组建虚拟的并行计算平台,为物探应用提供高性能作业处理能力.并行框架是一套基于任务级并行的性能解决方案,是在单机内,使用多线程、OpenCL等方法实现线程级、指令级的并行与优化之后,仍未达到性能要求时,所采用的一种方法,如图 1所示.
并行框架采用“分而治之”的思想对作业进行分解和处理.作业是多机处理的基本单位,一个作业可以分解成若干计算任务,然后分发到各计算节点完成.一个作业的执行流程通常包括作业准备、启动作业、作业运行、作业释放等几个主要步骤,过程如图 2所示.
整个作业执行过程由多个计算资源协同完成,主要涉及到用户节点、管理节点、计算节点、监控节点这几类角色.并行框架采用主从模式 (Master-Slave),其中管理节点作为Master负责全局的资源管理、作业管理和任务调度,计算节点作为Slave负责计算任务的执行,用户节点作为并行计算平台与用户交互的前端,负责作业的发启、作业结果的回收与处理.
并行框架采用“平台+插件+工作流”的方式,为物探多机并行计算提供一套整体的多机高性能解决方案.并行框架组成结构图如图 3所示,其中并行框架以插件平台的方式实现,并行客户端及用户主程序均是插件宿主程序,用于插件的加载和运行.并行框架负责提供多机并行计算的基础运行环境,包括资源管理,任务调度、流程解析、消息通信和数据传输等服务,其功能由多个节点插件协同实现;物探多机算法、功能以用户插件方式实现,包括课题用户插件和课题计算插件,由并行框架“即插即用”的调用;过程定义文件是课题算法流程的描述,用于组织和协调网络资源进行多机并行计算,由并行框架解析和执行.
多机并行框架是一个采用插件技术的、针对物探中小规模计算的分布式高性能计算平台.插件技术是当前一项非常先进和实用的软件设计架构 (Gama et al., 2011; Seinturier et al., 2012),其主要思想是将扩展功能以插件的形式通过平台统一的管理起来,本文利用C++实现了一套精简、高效、支持多种插件类型的插件平台,结构如图 4所示.使用面向插件的应用框架具有极强的动态扩展性,用户可在运行时增加新的功能模块,而无需重新编译和发布整个程序, 适合当前多人协同、高效的进行大规模软件开发的情况.在软件的设计和开发过程中,将整个应用程序划分为宿主程序和插件对象两部分,宿主程序能够调用插件对象,插件对象能够在宿主程序上实现自己的逻辑,而两者的交互基于一种公共的插件接口,针对物探应用特点和多机并行计算过程,定义了一套C++方式的插件接口,插件可视为“多态”的继承并实现这些接口的软件功能包,从而可被宿主程序认可和调用.这是一种接口调用规范与功能实现相分离的技术,宿主程序可利用统一的调用方式通知插件执行不同的功能实现.
宿主程序:是各插件模块运行的平台,包括插件接口、插件管理器、插件内核、消息管理器、配置管理器等几个部分,负责插件的加载、管理、运行、终止等操作,并提供完备的通信机制,协调插件之间、插件与宿主程序之间的通信和调用.宿主程序是可定制的,用户可以根据需要对运行环境进行配置和调整.根据运行目标和环境的差异,宿主程序分成两大类,一类是完备的带UI的宿主程序-用户主程序,用于实现数据显示和用户交互等功能;一类是以高性能计算为目标的、精简的、不带UI的宿主程序-并行客户端,并行客户端安装在各计算节点,用于提供基本的插件运行环境.
插件:插件是插件平台中功能的承载者与执行者.通过实现插件接口进行扩展,可以被宿主程序动态加载、解析和使用.利用插件可以在不修改主程序的情况下,增加新的功能,同时插件间可以相互协作来完成复杂任务.插件的开发必须遵守统一的规范,包括接口规范、配置规范等.用户的并行算法需要以插件方式实现,众多的插件为平台提供了丰富的功能.
多机并行框架以插件方式实现了各节点功能,如图 5所示,包括用户节点插件,计算节点插件,管理节点插件和监控节点插件,通过这些节点插件的相互协作为用户提供基础的多机并行计算环境,实现了计算资源管理、任务调度、多机间通信等后台工作,将多机并行框架与用户业务逻辑进行了分离.利用此框架进行多机并行计算,用户需要实现自己的业务插件,包括课题用户插件和课题计算插件.其中用户节点插件和课题用户插件一同部署在用户节点,两者相互协作,用于实现多机并行计算的作业提交、结果处理等功能,其中用户节点插件用于实现作业提交,结果回收,作业流程调用等功能;课题用户插件用于完成课题作业相关的参数设置、数据准备、结果处理等工作.管理节点插件提供作业级的管理,包括作业流程控制、任务调度、资源管理等后台工作.计算节点插件和课题计算插件部署在计算节点上,两者相互协作用于完成任务的计算工作.计算节点插件提供处理任务流程的运行环境,包括插件部署、加载、插件功能调用、状态报告、数据回传等;课题计算插件用于实现具体的任务计算功能,根据过程定义,被动态的部署和加载到计算节点客户端,并以插件接口的方式提供计算功能的实现.
多机并行框架为用户提供基础的多机并行计算环境,在插件开发过程中,用户只需实现自己的插件,专注于业务逻辑和功能实现即可,简化了开发内容和开发过程,降低了多机并行开发难度.
2.2 并行框架的工作流技术多机并行计算是一种网络交互行为,这是它区别于其他计算模式的本质特征,并行框架以插件方式实现了网络上不同角色、不同环节上的功能与活动,用户利用插件实现算法功能,如何协调、控制和组织网络资源按指定算法流程协调工作是一项具有挑战性的工作.尤其是在实际应用过程中,算法多样,算法结构和流程各不相同,诸如层析静校正这类存在迭代和同步的复杂算法,一般通用的多机计算平台很难直接支持,并行框架如果要在平台一级实现对不同算法的广泛支持就需要一个有弹性的、可定制的编程模型 (Pautasso and Alonso, 2006; Seinturier et al., 2012; Nguyen et al., 2016).本文通过引入工作流技术,在插件平台的基础上实现了一套针对物探的并行计算规范.并行计算规范是一项支持协同工作的技术,依据一定的逻辑和规则可以将网络中插件的活动按算法流程有机的组织起来,实现多种复杂算法的计算.基于并行计算过程规范,并行框架为用户提供了对复杂应用进行抽象定义、灵活配置和自动化运行的多机计算环境 (Jahn et al., 2010; Hartenstein, 2012),从平台框架一级实现资源动态的统一配置、优化和管理.过程规范的定义和实施由并行框架工作流环境来完成,该环境主要由并行计算过程规范、过程定义工具、工作流运行环境等几个部分组成,如图 6所示.
并行计算过程规范:定义了一套针对物探多机并行计算的过程规范,以规范化的、计算机可以理解的方式来描述处理流程,协调网络资源,组织网络环境下插件间的远程协作.过程规范主要包括控制逻辑、插件接口、内置命令、数据传输、消息通信几类功能命令,这些命令由对象、地点、活动、控制逻辑等一系列元语组成.其中通用控制逻辑包括串行、循环、判断、同步等控制命令,可组合、嵌套使用来实现对复杂算法过程的控制.通常插件即为活动的对象和主体,根据活动发生的位置不同,地点分为管理节点、计算节点和用户节点几类.事件和活动是工作流中一个逻辑步骤或环节的具体任务,是流程执行中的最小工作单元,一般由插件接口或内置命令能来实现.用户可以以插件命令、插件接口的方式实现自己的事件或活动.为了方便多机并行计算,并行框架提供了部分通用功能,如作业调度、文件传输、消息通信、压缩解压缩等.过程规范核心是对过程的定义,包括组成过程的基本活动以及活动之间的顺序关系.过程定义的结果是过程定义文件,过程定义文件是利用过程规范对算法流程的描述实例,采用有向无环图的方式描述,通常由过程定义工具来配置和生成.
过程定义工具:用于辅助用户建立特定业务算法的过程定义文件,包括组成过程的基本活动以及活动之间的顺序关系,活动所使用的插件及插件命令等,运行过程中涉及到的各种数据和参数等.使用此工具,用户仅从业务逻辑角度出发定义、修改或重组作业的工作流程,主要考虑数据传递、插件部署、功能调用、异常处理等.
工作流运行环境:工作流运行环境借助工作流引擎来解释和实施过程定义文件,根据定义中的控制规则协调活动之间的顺序关系,完成活动间的信息传递和数据传输,通常这些活动发生在网络不同节点插件上,因此需要多机并行框架中不同节点上的不同工作流引擎协同工作来推进作业的运行,这些节点分别处理不同层级不同部分的过程活动,如管理节点负责整个作业整体运行流程,而计算节点则负责具体的计算任务的处理流程.
并行框架的工作流运行环境就是由参与并行计算的不同节点插件共同组建.用户在提交作业启动计算时,就需要提交作业相应的过程定义文件,管理节点工作流引擎对过程控制文件进行解析、调度、执行和管理,包括根据作业起始条件对各计算节点进行配置,包括传输计算所需插件、数据、参数等,然后根据过程定义文件中设定的调度策略进行任务调度、协调计算节点间的进度,整体监视和控制作业的进程;计算节点工作流引擎加载和解析过程定义文件,根据过程定义文件加载指定插件,按指定顺序调用插件命令完成指定计算任务.流程示例如图 7所示.
工作流的引入,将控制逻辑和业务逻辑进行了分离,业务逻辑根据过程定义以插件方式在并行框架各节点上进行配置和实施,为网络不同节点上的插件相互协作提供了实施的方法和手段.工作流的引入,将控制流、数据流进行了分离,数据和消息可根据过程定义在节点间传输.工作流的引入,实现了对复杂算法分布式计算的计算机描述,并提供了有效的运行环境,可协调和控制网络节点上各插件在时间、空间以及资源等在约束条件下按序完成指定算法,从而适应各种复杂的应用场景,满足了多机并行计算下用户的诸多需求.
3 应用实例基于此多机并行框架已经实现多个应用课题的多机并行计算程序的开发,包括非线性初至波走时层析 (Taillandier et al., 2009) 这种含有迭代和同步的复杂流程的多机并行计算,使用异构设备多机并行计算的二维双程弹性波照明 (谢小碧等, 2013) 分析,以及在Linux集群中使用多节点计算的二维声波正演照明 (王锡文等, 2012) 等.并行框架在不同课题、不同软硬件环境下的应用中都取得了良好的效果,在实际生产应用中,这些课题通过利用多机并行计算,极大缩短了计算时间,提高了生产效率,产生丰厚的经济效益.本文以非线性初至波走时层析为例进行详细说明.
3.1 算法原理初至波走时层析方法是一种广泛地应用于复杂地区浅地表速度建模和静校正量计算的算法,并在地震数据叠加处理和叠前深度偏移处理建模等方面发挥了重要作用.本文对Ma等 (2014)等人提出的非线性初至走时层析算法进行了扩展,以多机并行计算框架为基础,结合当前多机多核的硬件环境,实现了非线性初至波走时层析这种存在多层嵌套迭代和同步的多机并行计算.其中并行框架提供基础的多机运行环境,协调用户节点和计算节点的作业流程,用户节点负责非线性迭代,包括汇总任务结果,计算整体慢度模型,更新速度模型,同步分发新数据等;计算节点实现计算任务的线性迭代,通过射线追踪来求取本节点任务内的慢度改变量,从而实现多机以炮组为单位的多任务并行,单机上以炮和射线为单位的多核并行,更有效的利用现有硬件资源.该方法将最耗时的内层线性迭代循环过程以炮为任务单位分配到各计算节点上进行,各计算节点完成线性迭代后,将任务结果汇总到用户节点,由用户节点负责外层非线性迭代循环中的工作,包括对慢度改变量进行汇总,更新速度模型,同步汇总后分发新的速度模型到各计算节点,开始新的一轮迭代计算.层析多机并行计算算法流程如图 8所示.
利用多机并行框架实现层析的多机并行,首先要分析清楚算法的业务逻辑和流程,并利用过程定义工具配置出层析的过程定义,然后完成层析用户插件和层析计算插件的开发.最后进行部署和计算,系统部署结构如图 3所示,整个作业处理流程主要包括以下几个步骤:
1) 作业准备
作业准备包括计算资源准备、作业流程定义、计算任务划分,作业数据准备,参数设置等.由于层析用户插件和并行框架用户节点插件协同完成,如图 3图 4所示.
2) 作业提交
在完成作业准备工作之后,即可提交作业启动作业的运行工作.
3) 作业运行
作业的运行由并行框架负责,层析根据过程定义实现计算任务的处理和结果数据的处理.
计算任务的处理:计算任务的处理是在计算节点由并行框架和层析计算插件协同完成的,如图 3图 4所示.计算节点在获取任务信息和任务数据后,加载和解析作业流程定义文件,按预定的流程调用并行框架和层析并行计算插件功能进行任务处理,包括加载层析计算插件,读取速度模型,进行射线追踪,更新局部慢度模型,回传线性迭代结果,同步等待等步骤,如图 8中计算节点部分的内容所示.
结果数据的处理:用户节点在接收所有计算节点回传的任务结果后,调用层析用户插件汇总出总的慢度模型,然后更新速度模型,完成后分发新的速度模型到各个计算节点,处理流程如图 8中用户节点部分所示.当所有线性和非线性迭代处理过程完成后即可计算出最终的作业结果.
3.3 实验效果为了测试多机并行的结果正确性及效率,本文选取某三维探区进行对比测试.该项目总炮数为49755炮,应用初至走时的炮检距为0~2000 m,初至走时数据为2.4 Gb.三维模型的网格尺寸为60 m×60 m×10 m,网格数为246×412×121,线性迭代次数为8次,非线性迭代次数为10次.利用上述参数分别进行了单机和5台并行测试,采用机器为Dell Precision T3500,硬件配置为Intel Xeon CPU W3530,4核,主频为2.80 GHZ,内存为6 G,系统为Win7 64位.多机时使用这5台机器作为计算节点,用户节点与某计算节点共用一台机器.单机时使用其中一台进行测算.
如图 9所示,为收敛曲线的结果对比.其中的蓝色线为单机多核的初至走时收敛曲线,红色为多机多核的收敛曲线,可以看两者基本重合.对比层析单机和多机最终的速度模型结果,两者也是一致的,其相对误差小于0.2%.其微小差异为多机并行过程中产生的舍入误差、累积误差导致,对反演结果没有明显影响.
从计算效率上,单机整个流程计算耗时为24.5 h,多机耗时为5.43 h,加速比为4.5.对于这种存在数据同步和嵌套迭代的多机计算,加速比是很好的.
4 结论 4.1并行框架是一个简单易用的、跨平台、适合于不同硬件环境的商业软件产品.适应石油物探室内和野外处理环境差异巨大,软硬件环境多样的现况.在实际项目应用过程中,可充分利用现有资源进行多机并行计算,节省计算时间,缩短了工期长度,产生丰厚的经济价值.
4.2并行框架是一个面向物探的高性能解决方案.并行框架以插件方式提供了基础的、可扩展的多机运行环境,将多机并行计算与业务逻辑进行了分离;用户可以利用插件实现并行算法,在不修改程序主体的情况下对软件功能动态的、“即插即用”的进行加强;利用并行计算过程规范不但可实现对复杂算法流程的描述,还可将业务流程和网络资源、网络节点插件功能有效组织和协同起来实现多机计算.通过采用“平台+插件+工作流”方式,利用不同层级、可扩展、可调整的技术手段和技术规范,将多机并行计算、业务功能、业务流程和网络资源以一种松散的方式耦合在一起,以一种通用平台和技术的方式解决了石油勘探工程中算法种类多样、以中小模型计算为主、算法处理流程复杂、多机实现困难的问题,是石油物探软件的一项创新.
致谢 感谢审稿专家提出的修改意见和编辑部的大力支持![] | Ahmed N, Mehaoua S K, Boutaba R. 2006. Study and application of plug-in technology[C].//IEEE International Conference on Software Architecture. 4:2469-2473. |
[] | AlHakami H, Aldabbas H, Alwada'n T. 2012. Comparison between cloud and grid computing:Review paper[J]. International Journal on Cloud Computing:Services and Architecture (IJCCSA), 2(4): 1–21. DOI:10.5121/ijccsa |
[] | Da W, Yang H B, Hang Z B. 2011. Research and implementation on dynamic plug-in framework for service-oriented architecture[C].//Proceedings of 2011 4th IEEE International Conference on Computer Science and Information Technology (ICCSIT 2011). 5:325-328. |
[] | Deelman E, Gannon D, Shields M, et al. 2009. Workflows and e-Science:An overview of workflow system features and capabilities[J]. Future Generation Computer Systems, 25(5): 528–540. DOI:10.1016/j.future.2008.06.012 |
[] | Endo P T, Gonçalves G E, Kelner J, et al. 2010. A survey on open-source cloud computing solutions[C].//Brazilian Symposium on Computer Networks and Distributed Systems. Expanded Abstracts, 3-16. |
[] | Gama K, Pedraza G, Lévêque T, et al. 2011. Application management plug-ins through dynamically pluggable probes[C].//Proceedings of the 1st Workshop on Developing Tools as Plug-ins. New York, NY, USA:ACM, 32-35. |
[] | Gandotra I, Abrol P, Gupta P, et al. 2011. Cloud computing over cluster, grid computing:A comparative analysis[J]. Journal of Grid and Distributed Computing, 1(1): 1–4. |
[] | Gómez J, Villar E, Molero G, et al. 2012. Evaluation of high performance clusters in private cloud computing environments[A].//Omatu S, Santana J F D P, González S R, et al. Distributed Computing and Artificial Intelligence[M]. Berlin Heidelberg:Springer, 305-312. |
[] | Hartenstein R. 2012. The paramountcy of reconfigurable computing[A].//Zomaya A Y, Lee Y C. Energy-Efficient Distributed Computing Systems[M]. Hoboken, NJ:John Wiley & Sons, Inc., 465. |
[] | Hashemi S M, Bardsiri A K. 2012. Cloud computing Vs. grid computing[J]. ARPN Journal of Systems and Software, 2(5): 188–194. |
[] | Jahn M, Loberbauer M, Wolfinger R, et al. 2010. Rule-based composition behaviors in dynamic plug-in systems[C].//Proceedings of 2010 17th Asia Pacific Software Engineering Conference. Sydney, NSW:IEEE, 80-89. |
[] | Lee K H, Lee Y J, Choi H, et al. 2012. Parallel data processing with MapReduce:A survey[J]. ACM SIGMOD Record, 40(4): 11–20. DOI:10.1145/2094114 |
[] | Luther A, Buyya R, Ranjan R, et al. 2003. Alchemi:A. NET-based grid computing framework and its integration into global grids[R]. Technical Report GRIDS-TR-2003-8. Australia:Grid Computing and Distributed Systems Laboratory, University of Melbourne. |
[] | Ma Q P, Li P M, Feng Z Y, et al. 2014. A new implementation for nonlinear first arrival traveltime tomography[C].//2014 SEG Annual Meeting. Society of Exploration Geophysicists. Expanded Abstracts, 2124-2428 |
[] | Nguyen B T, Nguyen D H, Nguyen T T, et al. 2016. Design of a workflow-based grid framework[J]. International Journal of Computer Theory and Engineering, 8(1): 14–23. DOI:10.7763/IJCTE.2016.V8.1013 |
[] | Pardeshi S N, Patil C, Dhumale S. 2013. Grid computing architecture and benefits[J]. International Journal of Scientific and Research Publications, 3(8): 1–4. |
[] | Pautasso C, Alonso G. 2006. Parallel computing patterns for grid workflows[C].//Proceedings of 2006 Workshop on Workflows in Support of Large-Scale Science. Paris:IEEE, 1-10. |
[] | Samanthula B K, Elmehdwi Y, Howser G, et al. 2015. A secure data sharing and query processing framework via federation of cloud computing[J]. Information Systems, 48: 196–212. DOI:10.1016/j.is.2013.08.004 |
[] | Seinturier L, Merle P, Rouvoy R, et al. 2012. A component-based middleware platform for reconfigurable service-oriented architectures[J]. Software:Practice and Experience, 42(5): 559–583. DOI:10.1002/spe.v42.5 |
[] | Soma R, Bakshi A, Prasanna V K. 2007. An architecture of a workflow system for integrated asset management in the smart oil field domain[C].//Proceedings of 2007 IEEE Congress on Services. Salt Lake City, UT:IEEE, 191-198. |
[] | Taillandier C, Noble M, Chauris H, et al. 2009. First-arrival traveltime tomography based on the adjoint-state method[J]. Geophysics, 74(6): WCB1–WCB10. DOI:10.1190/1.3250266 |
[] | van der Aalst W M P, van Hee K. 2004. Workflow Management:Models, Methods, and Systems[M]. . |
[] | Wang X W, Qin G S, Zhao W F, et al. 2012. The application of forward modeling technique in seismic acquisition design[J]. Progress in Geophysics (in Chinese), 27(2): 642–650. DOI:10.6038/j.issn.1004-2903.2012.02.029 |
[] | Wolfinger R, L berbauer M, Jahn M, et al. 2011. Adding genericity to a plug-in framework[J]. ACM SIGPLAN Notices, 46(2): 93–102. DOI:10.1145/1942788 |
[] | Xie X B, He Y Q, Li P M. 2013. Seismic illumination analysis and its applications in seismic survey design[J]. Chinese Journal of Geophysics (in Chinese), 56(5): 1568–1581. DOI:10.6038/cjg20130515 |
[] | Zhang J H, Zang S S, Shan L Y, et al. 2010. Development status and trends for high performance computing[J]. Oil Geophysical Prospecting (in Chinese), 45(6): 918–925. |
[] | 王锡文, 秦广胜, 赵卫锋, 等. 2012. 正演模拟技术在地震采集设计中的应用[J]. 地球物理学进展, 27(2): 642–650. DOI:10.6038/j.issn.1004-2903.2012.02.029 |
[] | 谢小碧, 何永清, 李培明. 2013. 地震照明分析及其在地震采集设计中的应用[J]. 地球物理学报, 56(5): 1568–1581. DOI:10.6038/cjg20130515 |
[] | 张军华, 臧胜涛, 单联瑜, 等. 2010. 高性能计算的发展现状及趋势[J]. 石油地球物理勘探, 45(6): 918–925. |