基于边缘计算的大地电磁法三维反演分布式计算实现
2021-02-02吴文鹂刘艳丽
梁 萌,吴文鹂,冯 斌,陈 实,刘艳丽
(1.中国地质科学院 地球物理地球化学勘查研究所,廊坊 065000;2.国土资源部 地球物理电磁法探测技术重点实验室,廊坊 065000)
0 引言
在地球物理方法的应用中,大地电磁法勘探作为一种有效的技术手段,应用在我国经济社会发展包括能源、矿产勘查和深部探测等一系列重要领域。随着勘探技术的提高和勘探目标的日趋复杂,驱使大地电磁法三维勘探及处理技术逐步推广,由剖面二维测量发展到了多剖面测区三维测量,从而导致数据量成倍增长。考虑到项目实施周期及综合解释等要求,对数据处理周期的要求越来越短,以往的串行处理方式已经不能完全满足项目实施的要求,采用并行计算已经成为数据处理的必然趋势[1]。以往基于单台计算机多线程的并行程序,对计算效率的提高也极其有限,近两年在地球物理数据处理研究方面,尤其是电磁法三维正反演方面,多采用分布式并行编程模式(MPI)实现地球物理多进程并行计算[2],相比单机运行程序可以有效提高计算效率,但其对计算机的计算能力要求也越来越高,甚至需要采用具有超性能计算机来进行三维反演并行计算,但这样无疑会增加项目实施的成本[3]。
边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和软件环境服务,在靠近数据输入的地方提供计算、存储和网络带宽[4]。基于边缘计算的理念,可以将原本需要由超性能计算机来处理的数据计算移往网络逻辑上的边缘节点进行分布式处理,由于高性能工作站及高速网络设备已经成为科研院所及高级院校中的必备设备,将已有的高性能工作站通过单位内部的局域网络联接形成分布式计算环境,为分布式并行计算提供一个可供研发及数据处理的平台。
1 分布式计算环境构建
依托中国地质科学院地球物理地球化学勘查研究所(物化探所)地质云物理分节点硬件设备,采用虚拟化技术构建具有一定计算与存储规模的硬件资源池[5],结合3台曙光工作站和3台华为服务器,形成分布式计算环境的硬件环境(图1)。基于边缘计算的理念将以上计算机通过局域网络互相连接后,形成可以集中调度计算资源的分布式计算环境[6],用于分布式并行计算研发和高性能计算服务。
图1 分布式计算环境架构图Fig.1 Architecture of distributed computing environment
以往多采用手动配置方式将若干台计算机连接形成分布式计算环境,涉及到网络配置、节点间无密码登录和程序手动部署等一系列繁杂的操作,随着计算机数量的增加其操作的繁杂程度会成倍增长,造成了计算机集群难以快速扩展。总之,未形成有效的分布式计算环境构建、程序的部署与运行方案,在一定程度上阻碍了分布式并行程序的研发和推广应用。
区别于以往的手动配置方式,笔者提出基于容器编排系统Kubernetes构建分布式计算环境。Kubernetes是一款开源的容器编排系统,旨在提供一个用于跨主机集群自动部署、扩展和操作容器(Docker)的平台,其运行核心是将分布在不同主机的应用容器,通过网络组件连接实现服务的分布式计算[7]。Docker是一个基于Linux技术构建容器的容器引擎,以Docker容器为程序运行的载体,与基于物理实体计算机方式相比,在流程化的开发、测试、部署和维护具有较高的优势[8]。
采用Kubernetes容器编排系统将图1所示计算机,通过局域网络进行连接形成在物理空间上相互独立,但在逻辑上相互统一的计算平台。具体操作包括4个步骤:①计算机安装Linux操作系统;②计算机安装Kubernetes容器编排系统;③选择其中1台计算机作为主节点且初始化;④其他节点通过网络加入主节点,形成由主节点统一调度的计算资源池。基于以上4个步骤可快速构建分布式计算环境,若需要进一步扩展计算资源只要执行第2步和第4步操作,解决了以往手动配置分布式计算环境的操作繁杂问题。
2 三维反演程序部署与运行
手动配置分布式计算环境的主要缺点是缺少统一调度计算资源的能力,且由于各台计算机存在操作系统版本与环境配置的差异,需要在每一台计算机上分别部署和调试应用程序。采用Kubernetes容器编排系统构建的分布式计算环境,可以通过由主节点统一调度的计算资源池快速部署以Docker容器为载体的应用程序,由于部署后的Docker容器运行时包括应用程序及其依赖的运行环境,不必再进一步调试应用程序。
在计算资源池上通过主节点部署大地电磁法三维反演程序,笔者采用基于MPI的美国俄勒冈州立大学的ModEM大地电磁法三维反演并行程序[9],首先构建包含大地电磁法三维反演程序的Docker容器镜像,构建步骤如表1所示。此构建步骤具有通用性,若部署其他程序,只需在第2步中将执行程序以及依赖环境进行替换。
表1 Docker镜像构建步骤表Tab.1 Building steps of Docker image
构建大地电磁法三维反演程序的镜像后,通过主节点在计算资源池中部署此镜像形成多个计算节点,计算节点由Kubernetes的网络组件连接形成分布式计算环境,基于计算节点内部的MPI环境实现大地电磁法三维反演分布式并行计算。分布式计算环境由主节点提供的接口服务模块进行调度与运行,接口服务模块基于Kubernetes提供的Python语言API接口编写,具体功能函数包括计算节点发现,数据文件上传与结果回传,计算启动、计算进度监控与停止。基于分布式计算环境提供的计算服务接口,进一步研发大地电磁法三维反演分布式计算软件。
3 三维反演分布式计算软件
大地电磁法三维反演分布式计算软件由系统集成框架与计算服务接口两部分组成(图2),系统集成框架基于物化探所电法工作站和三维电磁探测数据处理与反演解释软件系统[10]等已有研究成果实现,集成框架框架以数据驱动为核心,采用插件模式设计,由多维图形可视化、人机交互操作界面和插件管理模块组成,底层采用数据库管理大地电磁法数据和反演模型。计算服务接口基于插件开发模式集成于系统框架中,通过按钮、列表、曲线和进度条等人机交互方式实现和使用相应的接口功能,实现方法处理过程监控,反演结果查看和分析(图3)。由图3可以看出,大地电磁法三维反演分布式计算软件的数据计算与用户操作两部分完全分离,其区别于传统电磁法软件主要特点包括:①软件部署在客户端,用户直接操作软件不必登录到计算服务器上使用,减少不必要的操作流程;②数据计算与软件操作分离,可进行离线计算,不会造成因软件关闭造成反演计算进程终止的问题;③当反演程序更新时,不必更新客户端软件,只需要在服务端重新部署应用程序,可实现程序的快速部署与集成。
图2 大地电磁法三维反演分布式计算软件架构图Fig.2 Architecture of three-dimensional magnetotelluric inversion distributed computing software
图3 大地电磁法三维反演分布式计算软件操作界面Fig.3 Interface of three-dimensional magnetotelluric inversion distributed computing software
4 应用实例
为了对研发的大地电磁法三维反演分布式计算软件的有效性和并行效率进行测试,设计了一个2层理论模型,用其合成数据在分布式计算环境上进行试算。模型为2层模型,模型为每层含4个异常体(如图4所示),第一层每个异常体规模相同:长为500 m,宽为500 m,高为100 m。顶界面位于-100 m处,4个异常体的中心点分别位于(-500,-500)、(500,-500)、(-500,500)、(500,500),电阻率分别为30 Ω·m、300 Ω·m、300 Ω·m、30 Ω·m;第二层每个异常体规模相同:长为500 m,宽为500 m,高为300 m。顶界面位于-300 m处,4个异常体的中心点分别位于(-500,-500)、(500,-500)、(-500,500)、(500,500),电阻率分别为2 000 Ω·m、20 Ω·m、20 Ω·m、3 000 Ω·m。背景电阻率为100 Ω·m。正演采用的地面测点规模描述如下,测线21条,测线间隔为100 m,每条测线上21个测点,测点间隔为100 m,共441个测点。正演频率采用0.031 25 Hz至8 192 Hz共38个频点。理论模型经正演得到合成数据后进行反演,反演参数与初始模型描述如下,正则化因子为2,搜索半径为50 m,迭代次数30次;模型网格数三个方向分别为40、40和44个,初始模型电阻率为100 Ω·m。从图5、图6中看出,反演结果可以很好地反映模型上下2层8个异常体的形态与位置。
图4 模型示意图Fig.4 Diagram of model(a)模型在y=-500 m垂直方向断面图;(b)模型在y=500 m垂直方向断面图;(c)模型在z=-150 m平面俯视图;(d)模型在z=-450 m平面俯视图。
图5 反演结果在不同深度的水平切片图Fig.5 Horizontal slice of inversion results at different depths(a)反演结果在深度150 m的水平切片图;(b)反演结果在深度450 m的水平切片图
图6 反演结果的垂直断面图Fig.6 Vetical section of inversion results(a)y=-500 m;(b)y=500 m
为保证并行效率统计的计算性能一致性,基于容器编排系统的标签技术,在相同配置的6台计算机上部署16个计算节点,测试结果如表2所示,其中加速比=单节点运算时间/并行运算时间,计算效率=加速比/参加计算的节点数量。
表2 MT 三维反演并行计算效率Tab.2 Parallel computation efficiency of MT 3-D inversion
从表2分析得出,随着计算节点个数的增加计算时间会相应缩短,并行计算的加速比随着计算节点数的增加而提高,当计算节点是16个时,加速比达到9.92倍。随着计算节点个数的增加计算效率会不断下降,当计算节点是16个时,计算效率只有62.02%,这是由于计算节点是通过容器编排系统Kubernetes构建的虚拟局域网络进行通信,在并行计算过程中程序的数据通信时间随着计算节点的增加,其所占的比例逐渐增大,造成计算效率逐步下降。
5 结束语
基于边缘计算的理念,采用Kubernetes和Docker两项容器技术构建具有大规模计算资源的分布式计算环境,实现了将大地电磁法三维反演的并行计算任务分配到网络边缘设备上,通过高性能工作站协同完成三维反演分布式并行计算。通过模型合成数据进行反演试算,分析了在增加计算规模的情况下对分布式并行计算的影响,结果表明,分布式计算环境解决了三维反演计算速度和资源需求问题。基于松耦合方式的软件架构设计,研发了大地电磁法三维反演分布式计算软件,实现了人机交互操作和反演结果可视化,进一步推动了大地电磁法三维反演程序的实用化。在下一步的研究工作中,将细化三维反演算法的并行任务,以适应分布式计算环境,进一步提高反演程序的并行计算效率。
致谢
感谢美国俄勒冈州立大学Gary Egbert教授提供的ModEM大地电磁法三维反演源程序。