基于容器技术的水文水动力模型软硬件适配方法

2024-02-18 04:59张海嘉刘家宏梅超王佳高希超
计算机应用研究 2024年1期

张海嘉 刘家宏 梅超 王佳 高希超

摘 要:随着国产化软硬件系统的发展和普及,将现行的计算程序适配到国产硬件和操作系统上是科学研究和业务化应用的关键,亟待探索提出专业计算模型的软硬件适配方法。现有关于专业计算模型的软硬件适配方法存在缺乏通用性、硬件依赖性强等问题。鉴于此,系统解析了国产化适配需要解决的关键问题,并对比了现行的软件适配技术,筛选出容器技术作为水文水动力模型的国产适配技术。容器技术可将应用程序打包成独立的运行环境,摆脱对底层架构和操作系统的依赖。以水文水动力模型TELEMAC为例,详细说明了Docker镜像构成原理,并通过Dockerfile文件构建了TELEMAC镜像环境,开展了计算案例的验证。结果表明TELEMAC镜像能够安全运行在以鲲鹏920处理器为核心的openEuler和麒麟V10等国产软硬件平台上,且案例计算结果与标准结果相一致,模型计算效率高,实现了专业科学计算模型的国产化软硬件适配,该研究可为其他软件国产化适配提供参考借鉴。

关键词:水文水动力模型;国产化适配;TELEMAC软件;镜像环境;Docker技术

中图分类号:TV122   文献标志码:A   文章编号:1001-3695(2024)01-028-0188-05

doi:10.19734/j.issn.1001-3695.2023.05.0200

Software and hardware adaptation method of hydrodynamic model based on container technologies

Abstract:With the development and popularity of advanced RISC machines(ARM),adapting the X86-based scientific computing software to ARM-based computing platforms is one of the key issues for scientific research and operational applications.It is urgent to explore the software-hardware-adaptation methods of advanced RISC machines for professional computational models.This paper systematically analysed the key points for software hardware adaptation of ARM.By comparing the existing software adaptation technologies,it selected container technology to enable the hydrodynamic model to run on ARM-based computing platforms.Container technology could package the application software and its dependencies into a portable container,which made the suggested software run freely without any dependency on the underlying architecture and operating system.Taking the hydrological hydrodynamic model,TELEMAC,as an example,it explained the principle of Docker image composition in detail,and built the TELEMAC image environment through Dockerfile.The method was verified by carrying out the computational cases.The results show that the TELEMAC image can run safely on the Kunpeng 920 processor-based openEuler and Kirin V10.The case calculation results are consistent with the standard results,and the model calculation efficiency is high.The proposed method realizes the adaptation from an X86-based platform to ARM-based computing platforms for professional scientific computing models.This study can also provide a reference for the localization adaptation of other software.

Key words:hydrodynamic model;local adaptation;TELEMAC software;mirror environment;Docker technology

隨着国家的大力支持,国产操作系统的研发取得了巨大的进步。国产操作系统是基于安全稳定且源码公开的Linux内核上进行研发的,增强了自主可控性,是我国的信息安全的重要保障。然而,国产操作系统的软件生态是当前重点关注的问题,尽管常用的生活与办公软件已能够在国产硬件和操作系统上适配,但用户群体存在局限性。几乎所有的专业性科学计算软件均无法完全适配,继续扩大软件生态圈是加快国产操作系统推广、扩展用户群体的重要途径[1]。舍弃原有的软件成果,在新环境下重新开发新产品,将极大增加人力、时间和资金的投入。因此,扩展国产操作系统的软件资源库,完善其软件生态,行之有效的途径之一就是将现有的开源计算软件进行国产化适配,使其能够运行在国产操作系统上。

1 国产化适配

1.1 软硬件适配

1.1.1 ARM架构处理器

几十年来,Intel和AMD支持的X86架构处理器市场占有率高达90%,导致现行的专业计算软件均是基于X86架构进行开发的。X86指令集采用的是复杂指令集计算机(CISC)体系结构,这使得X86处理器设计和制造成本较高,而且容易出现设计缺陷和漏洞。指令集复杂也导致执行指令的效率较低、功耗较高、不够灵活,在嵌入式系统、移动设备、物联网设备等应用场景中会受到一定的限制[2]。与之相比,ARM架构处理器采用精简指令集计算机(RISC)处理器,指令数量相对较少,但可以通过组合实现复杂的计算和操作。这一做法不仅提高了指令运行速度,也最大限度地减少了功耗。ARM架构展示的高性能、低功耗的优势,使其正在迅速成为与X86竞争的强劲对手[3,4]。高效高性能的RISC是“将来时”,过于复杂的CISC即将成为是“过去时”,过去几十年时间内,苹果公司曾在CISC和RISC之间反复辗转,最终在2020年放弃了X86架构而改用基于ARM架构的芯片就是一个强有力的证明。高通也与惠普、联想和华硕等电脑厂商合作推出了基于ARM架构的电脑。国内飞腾、鲲鹏等厂商也已经能够实现ARM架构处理器的自主生产,并适配国产操作系统,在可预见的未来,将大量的软件迁移到ARM架构上是软硬件国产化的主要途径。当前常用的国产化适配方法包括代码重构、中间层代码移植和容器技术等,国产化软硬件包括自主研发的芯片和操作系统,因此在与现有开源计算软件进行适配时,解决的主要问题是软硬件兼容性问题。这既要保证国产化硬件能够正确地识别和运行开源计算软件,又要使国产化操作系统能够正确地支持开源计算软件的功能。

1.1.2 硬件适配

专业计算软件国产化适配主要解决的就是硬件(底层架构)和操作系统不适配的问题,硬件适配是实现国产化适配的第一步,也是实现高性能计算的有效途径,但ARM架构处理器精简指令集与X86复杂指令集并不兼容,众多专业性科学计算软件如何向ARM架构平台迁移成为当前研究者们面临的关键难题[5]。主要困难包括:a)不同底层架构的处理器采用不同的指令集,在应用程序跨架构适配时,需要将应用程序中使用的指令集进行相应的转换,确保应用程序能够在新的底层架构上正常运行;b)不同底层架构的处理器采用不同的数据类型,例如,X86底层架构的处理器使用的是little-endian字节序,而ARM底层架构的处理器使用的是big-endian字节序,在应用程序跨架构适配时,需要对数据类型进行转换,确保应用程序能够正确地读取和处理数据;c)不同底层架构的处理器使用不同的库文件,例如,X86架构的处理器使用的是Windows DLL文件,而ARM底层架构的处理器使用的是Linux SO文件,在应用程序跨架构适配时,需将应用程序中使用的库文件进行转换,确保应用程序能够在新的底层架构上正常运行。

1.1.3 操作系统适配

国产硬件是支持国产操作系统运行的基础,如openEuler、银河麒麟和中标麒麟等都基于国产ARM架构处理器。国产化适配不仅限于硬件适配,操作系统适配才是国产化最终目的,也是保障国家信息安全和实现关键软件自主可控的重要前提。

操作系统国产化适配过程亦存在许多问题,例如,不同操作系统使用的应用程序格式不同,Windows使用的是.exe格式,而国产操作系统是基于Linux内核进行研发的,使用的是rpm格式。因此,需要将应用程序从一种格式转换为另一种格式,才能在另一种操作系统上运行。其他不兼容问题还包括:a)不同操作系统的内核使用不同的系统调用,Windows操作系统的内核使用的是WinAPI,而Linux操作系统的内核使用的是POSIX API,在应用程序跨系统适配时,需要将应用程序中使用的系统调用进行转换,才能保证应用程序能够在国产操作系统上正常运行;b)不同操作系统的文件系统具有不同的特性,例如,Windows操作系统的文件系统使用的是NTFS或FAT32,而Linux操作系统的文件系统使用的是ext4或XFS,在应用程序跨系统适配时,需要对文件系统进行转换,确保应用程序能够正确地读取和处理文件;c)不同操作系统的设备驱动程序不同,例如,Windows操作系统的设备驱动程序使用的是WDM,而Linux操作系统的设备驱动程序使用的是内核模块,在应用程序跨系统适配时,需要对设备驱动程序進行转换,确保应用程序能够正确地访问硬件设备。

1.2 软件适配方法

实现应用程序的国产化软硬件适配是一个复杂的过程,采用的关键技术主要是硬件兼容适配技术和软件功能适配技术等手段,确保应用程序能够适配国产化软硬件和操作系统,同时保证计算模型功能能够满足专业计算需求。主要的技术方法包括代码重构、中间层代码移植和容器技术等。

1.2.1 代码重构

代码重构技术需要对应用程序源码进行深入剖析,识别出需要进行重构的部分,然后对其进行修改和扩展,使其适配于新的底层架构和操作系统。常用方法包括:a)基于源码修改是将待适配应用程序的源代码进行重构,使之适应新的平台。例如,以C、C++、Go等编译型语言开发的应用程序,从X86架构处理器迁移到ARM架构处理器时无法直接适配,则需要进行重新编译;b)基于语言转换是将一种语言的源码转换成另一种与平台无关的语言(如Java、C#语言等),使软件具有可适配性;c)逆向重构是针对无法获取源代码的应用程序,通过逆向分析工具,对应用程序进行分析、提取相应的编译文件,然后在目标平台上采用特定编译技术对应用程序进行重构。

1.2.2 中间层代码移植

中间层是指应用程序与操作系统之间的接口层,其作用是将应用程序的请求转换成操作系统可以理解的指令。中间层代码移植技术是将现有的应用程序中的某些功能代码独立出来,形成一个中间层,实现方法包括虚拟机技术、API模拟技术和模块技术等。a)虚拟机技术是在国产操作系统上搭建一个虚拟机来运行不同操作系统的应用程序(如Windows),但是这一技术从本质上来讲,就是在虚拟机上运行另一种操作系统,不能使应用程序摆脱对操作系统的依赖,本质上不属于国产化适配。b)API模拟技术是在国产操作系统上构建一层类似Windows程序运行所需要的应用程序接口(API),模拟应用程序源代码调用Windows API 的方式,使得国产系统获得Windows API相同或相似的功能。c)模块重构的是将应用程序与运行环境相关的部分从软件中分离出来,将软件分为两部分:一是与目标环境无关的实现自身功能的部分,二是目标环境和软件主体接口的适配层。

1.2.3 容器技术

容器技术又称为容器虚拟化,利用容器技术把第三方GUI应用程序及其运行环境打包成獨立的容器镜像,使其能够在不同的硬件平台和操作系统上运行。可以简单地将其理解为一个沙盒,它不依赖于任何语言、框架、系统,每个容器是独立的[6]。相较于其他主流虚拟化技术,如KVM和WMware,容器内的应用程序直接运行在宿主机的内核上,容器内没有自己的内核,也没有对硬件进行虚拟化,因此容器比起虚拟机启动速度更快、占用体积更小[7]。其中,Docker是最受关注容器技术,通过Docker技术可以将应用程序的代码、依赖库、环境变量和配置文件等打包成镜像组件。图1是Docker容器的运行原理,Docker引擎可以运行多个容器,每个容器都是一个独立的、隔离的应用环境。每个容器都运行着自己的应用程序,并且可以访问自己的文件系统、系统库等[8],从而摆脱对底层架构和操作系统的依赖,实现应用程序的适配。

1.2.4 适配方法对比

对比上述应用程序适配技术,代码重构方法具有较高的难度,不同应用程序的源代码使用的编程语言各不相同,代码重构技术不仅需要熟悉各种编程语言,还要充分了解应用程序的功能,才能对应用程序源代码进行拆分和重构,在实现国产化适配的同时获得满足功能要求的应用程序。对于中间层代码移植方法,由于Windows是非开源的,应用程序调用无法完全实现和Windows一样的功能,另外Windows中存在一些未被文档化的函数,这些函数目前也没有实现的方法。

容器技术是一种方法,对编程开发能力要求较低,但是容器技术可以将应用程序所需要的运行环境进行打包,实现应用程序的跨平台迁移。容器技术还具有以下优点:基础设施可以是个人电脑或远程服务器;开发平台容易搭建,操作系统可以是适配Docker引擎的Windows或Linux,方便开发人员上手操作;容器之间可以共享主机的资源,如CPU、内存、网络等,也可以通过卷(volume)来共享数据,占用宿主机资源少。

2 软件适配技术方案

实现软件适配需要解决的主要问题包括操作系统、硬件设备等方面的兼容性问题,使计算软件能够满足专业计算的功能需求;还需要考虑国产化硬件的性能特点和优势,充分利用硬件的性能问题;最后,保证适配后的应用软件不能影响宿主机和其他应用。针对上述问题,Docker 利用操作系统级别的虚拟化技术,将应用程序和其依赖项包装在一个容器中,可以在不同的环境中运行,保证计算模型功能在国产化适配后不发生改变。还可以共享宿主机内核的资源,发挥国产硬件高性能的优势。Docker 容器还提供了良好的隔离性和安全性,可以保护应用程序和其依赖项的安全性,同时也可以将容器作为安全性的边界来保护宿主机和其他软件。

因此,本文采用Docker跨平台构建镜像技术,以水文水动力学计算软件TELEMAC为例,构建Docker容器镜像,进行软件适配研究。在Dockerfile中对TELEMAC源代码进行编译和运行环境设置,构建包含TELEMAC软件和相关运行环境的容器镜像,使其能够独立运行在国产硬件和操作系统上。

2.1 TELEMAC软件

随着快速城镇化进程和全球气候变化,我国城市区域极端降水特征发生显著改变,城市极端暴雨频繁发生,造成了巨大的社会经济和生命财产损失[9]。数值模拟是研究城市内涝形成机理和演进规律的一种重要方法,通过模拟可以还原极端暴雨事件的雨情、水情和受灾过程,为构建城市防洪减灾体系提供理论和技术参考[10~12]。

TELEMAC软件可以构建1D、2D和3D水动力学模型以解决波浪传播、水质污染、地表水文、泥沙迁移等问题。二维水动力模块(TELEMAC-2D)被广泛应用于河流、河口、海岸、洪泛区的水动力过程模拟,并取得了较好的效果[13,14]。近年来,国内学者使用TELEMAC软件对城市内涝进行了大量研究,刘家宏等人[15]基于TELEMAC-2D模型,模拟了厦门岛不同重现期和不同雨峰系数内涝积水情况,初步揭示厦门岛城市内涝的基本规律。邵蕊等人[16]基于TELEMAC-2D模型对城市暴雨洪涝的应急响应能力进行评估,为城市精细化应急管理提供科学支撑。都利亚等人[17]采用TELEMAC-2D模型,开展了龙洞水库的二维溃坝洪水演进模拟,为相关防洪减灾工作提供科学依据。

文献综述表明TELEMAC软件在城市内涝模拟和城市防灾减灾规划中应用广泛,但TELEMAC软件仅适配于基于X86架构的Windows和大部分Linux发行版系统,无法在ARM架构的国产操作系统上运行,因此采用Docker容器技术对TELEMAC软件进行跨架构镜像构建,使其能够适配于国产软硬件系统。

2.2 Docker引擎适配情况

在进行镜像构建之前,分析了Docker引擎国产化适配情况,结果表明几乎所有的国产系统均能够适配Docker引擎,并在官方文档提供了关于Docker引擎适配情况的详细信息,供用户参考。国产深度操作系统(Deepin)和统信操作系统(UOS)系统默认支持Docker,可以通过“apt-get”命令安装Docker引擎;银河麒麟操作系统(Kylin)和中标麒麟操作系统(NeoKylin)可以通过添加第三方软件源或手动安装Docker引擎。华为鲲鹏通过虚拟化套件实现了基于鲲鹏920处理器和openEuler操作系统的Docker引擎适配,也是本文使用的软硬件测试环境,适配条件如表1所示。

2.3 软件适配方案

本文依托表1中的软硬件环境,构建能够适配于鲲鹏920处理器(ARM架构)的镜像,实现底层架构适配。在镜像中对TELEMAC软件进行编译,并进行环境变量配置,使其能够顺利运行在openEuler操作系统上,同时保证软件功能不发生改变,实现操作系统适配。

2.3.1 底层架构适配

底层架构的区别也使得国产操作系统和Windows等操作系统在体系结构、核心机制等方面存在較大的差异,基于不同底层架构的应用程序的内部机制也不同。因此,要使得软件能够实现国产化适配,就要解决软件底层与底层架构不适配的问题。Docker镜像虽然能直接运行在Docker引擎上,但是却不能忽视底层架构的区别。因此,TELEMAC软件要实现国产硬件适配,需要编译能运行在ARM架构的镜像文件。本文通过Docker构建工具包扩展构建功能解决底层架构差异问题,在镜像内部采用类似虚拟化的机制,将应用程序和依赖打包在一个独立的容器环境中,使TELEMAC软件的运行环境与底层架构隔离。在Dockerfile文件构建镜像的过程,使用TARGETARCH命令表示目标平台的底层架构,并设置包含目标平台底层架构信息的环境变量TARGETPLATFORM。最后使用“buildx”命令构建镜像,该命令将自动检测当前系统底层架构并生成对应架构的镜像,实现Docker镜像跨底层架构的适配。

2.3.2 操作系统适配

为了解决异构运行环境不兼容的问题,Docker采用Linux命名空间和联合文件系统两项技术。利用Linux命名空间技术将每个容器的进程、网络、文件系统、用户等资源隔离开来,形成一个独立的虚拟环境,使应用程序在一个独立的操作系统环境中运行,使待适配软件TELEMAC摆脱了对操作系统的依赖,运行在openEuler操作系统上。这一技术还可以解决国产操作系统软件依赖库不足,无法运行其他操作系统应用程序的难题,同时还可以将所构建的镜像一键运行在所有支持Docker容器技术的国产操作系统上[18],使所构建的Docker镜像具有快速迁移和部署的特点[19]。通过联合文件系统技术,将TELEMAC源代码、数据库、依赖项的下载指令和环境变量的设置指令写入Dockerfile文件,运行Dockerfile文件构建镜像。镜像分为多个层次,每个层次都是一个只读文件系统,每个文件系统层都是基于前一个层次构建而来,最后这些不同的层次被联合在一起形成完整的容器镜像。这一技术使得Docker镜像的构建和管理更加高效灵活,在不同操作系统之间进行迁移也更加容易。

3 TELEMAC镜像构建

3.1 镜像构建原理

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成。Docker镜像的构建是一个自上而下过程,如图2所示,每一条命令的执行都是分层构建的过程。镜像的构建过程如下:首先选择一个基础镜像作为基础进行新镜像构建,执行第一个Dockerfile指令对基础镜像所生成的容器进行修改,添加环境变量和软件运行的必要库;然后执行类似“docker commit”的操作,将更改后的容器提交为一个新的镜像层;最后以所构建的新镜像为基础镜像,运行一个新容器继续执行下一条命令。以此方式依次执行Dockerfile中的每一条指令直至所有指令执行完毕。

3.2 TELEMAC镜像构建

TELEMAC镜像的构建通过Dockerfile文件完成,Dockerfile文件将整个镜像进行了概括,其中包含了所构建镜像软件的环境变量配置、软件依赖安装、软件下载安装的操作指令等[20]。本文采用的Docker版本为23.0.1,图3为telemac:v8p4版本镜像的分层构建步骤。

3.3 案例测试

为了验证生成的TELEMAC镜像的功能,运行镜像生成容器,选择TELEMAC官方给出的计算案例进行测试,测试过程如图4所示。案例测试选择TELEMAC-2D模块中提供的二维淹没模型(t2d_pluie_cn_geo_hyetograph)进行地表淹没模拟测试。案例所用模型是一个边长为100 m的正方形,整个区域高程为0 m,由5 412个三角形网格组成,如图5所示。TELEMAC-2D中的径流模块基于简单的曲线数(CN)方法,其中CN值定义了土壤的渗透性。将计算区域分为Z1,Z2,Z3和Z4四个部分。CN值分别为85、95、80和90,如图6所示。模型为闭合边界,径流将不会离开且在研究区域内累积,计算区域的初始水深均为零。

降雨使用关键字定义为100 mm/d,持续6 h,因此总降雨深度为25 mm。模拟时长为8 h,时间步长为60 s,流场和水深变化如图7所示。从降雨开始到模拟结束,从水深变化可以看出,在第3 h时刻,Z2区域最先出现积水,随着模拟时间的增加,Z4和Z3区域分别出现不同程度的积水现象,但积水深度均比Z2区域小,这与不同区域CN值的分布情况相一致。流场变化呈现从Z2区域流向Z3区域的趋势,这是由于试算区域高程均为0 m,Z2区域CN值最大,产流量最大,地面出现积水最深,而Z3区域恰好相反,所以流场出现图7中的变化趋势,表明流场和水深的变化与CN值的分布相符合。同时,将计算结果与TELEMAC官网结果进行对比,本案例最终的结果与Ligier[21]相一致。上述分析表明本研究实现了TELEMAC软件的国产化适配且计算功能没有发生改变。

为了验证本研究的通用性,进一步将所构建的TELEMAC镜像在麒麟V10国产操作系统上进行了移植实验,运行镜像计算相同测试案例,结果与上述分析相同。这意味着本研究不仅实现了国产化适配目标,且在适配Docker引擎的国产系统上均能实现TELEMAC软件适配,且所构建的TELEMAC镜像不会因操作系统的改变而发生变化,具有很强的稳定性和跨系统迁移性。

4 结束语

为了完善国产操作系统的软件生态环境,本文采用Docker容器技术对水文水动力学计算软件TELEMAC进行镜像构建,使其能适配于国产硬件和操作系统,并进行了相关测试,主要结论如下:

a)采用Docker跨平台镜像技术构建了TELEMAC镜像文件,经测试所构建的TELEMAC镜像能够在以鲲鹏920处理器为核心的openEuler和麒麟V10等国产操作系统上运行。这实现了TELEMAC软件跨架构和系统的迁移,做到了水文水动力学科学计算软件的国产化适配,且计算功能没有发生改变。

b)Docker镜像中包含了软件的代码、依赖库、环境变量和配置文件,避免了软件之间相互冲突问题,能够实现TELEMAC软件的快速迁移和部署。在麒麟V10操作系统上的测试表明,构建的TELEMAC镜像功能不会因操作系统的改变而发生变化,具有稳定性和可移植性,在所有适配Docker引擎的国产系统上均能实现TELEMAC软件适配,相较于代码重构、中间层代码移植技术,本文研究技术具有普适性的优点。

c)TELEMAC镜像是以源代码为基础进行的镜像构建,做到了关键代码自主可控,有利于软件的二次开发和版本更新。同时,由于镜像具有可加性,可以将telemac:v8p4镜像作为基础镜像进行二次镜像构建,在现有镜像的基础上添加其他计算功能,实现耦合计算,完成TELEMAC软件基于国产系统的深度开发。

本研究对TELEMAC软件进行了完整代码的镜像构建,镜像量级较大,后续研究将对TELEMAC软件的源代码进行拆解,构建满足不同计算需求的模块镜像,以降低镜像量级。适配TELEMAC软件到ARM架构可以提高其计算性能,但具体的性能提升数值需要进一步研究和评估。

参考文献:

[1]綦志勇,常排排.国产操作系统的机遇与挑战[J].电脑知识与技术:学术版,2020,16(14):246-247.(Qi Zhiyong,Chang Paipai.Opportunities and challenges of domestic operating systems[J].Computer Knowledge and Technology,2020,16(14):246-247.)

[2]Kaiser S,Haq M S,Tosun A S,et al.Container technologies for ARM architecture:a comprehensive survey of the state-of-the-art[J].IEEE Access,2023,10:84853-84881.

[3]金育妍,余天豪,王松波,等.ARM架构云服务器的CPU功耗模型研究[J].计算机科学,2022,49(10):59-65.(Jin Yuyan,Yu Tianhao,Wang Songbo.et al.CPU power model for ARM architecture cloud servers[J].Computer Science,2022,49(10):59-65.)

[4]Blake W F,Apan Q,Jelena T,et al.Migrating software from x86 to ARM architecture:an instruction prediction approach[C]//Proc of IEEE International Conference on Networking,Architecture and Sto-rage.2021.)

[5]曹人之.氣象学应用在鲲鹏集群上的移植及性能优化研究[D].兰州:兰州大学,2022.(Cao Renzhi.Research on migration and performance optimization of meteorological application in Kunpeng cluster[D].Lanzhou:Lanzhou University,2022.)

[6]吴逸文,张洋,王涛,等.从Docker容器看容器技术的发展:一种系统文献综述的视角[J].软件学报,2023,34(12):5527-5551.(Wu Yiwen,Zhang Yang,Wang Tao.et al.Development exploration of container technology through docker containers:a systematic literature review perspective[J].Journal of Software,2023,34(12):5527-5551.)

[7]易升海,彭江强,卿勇军.等.浅析Docker容器技术的发展前景[J].电信工程技术与标准化,2018,31(6):88-91.(Yi Shenghai,Peng Jiangqiang,Qing Yongjun.et al.Analysis on the development of Docker container technology[J].Telecom Engineering Technics and Standardization,2018,31(6):88-91.)

[8]董子奇,刘淇,高原,等.基于容器技术的微服务部署研究[J].信息技术与标准化,2023(Z1):93-98.(Dong Ziqi,Liu Qi,Gao Yuan.et al.Research of microservice deployment based on container technology[J].Information Technology & Standardization,2023(Z1):93-98.)

[9]张建云,宋晓猛,王国庆,等.变化环境下城市水文学的发展与挑战:I.城市水文效应[J].水科学进展,2014,25(4):594-605.(Zhang Jianyun,Song Xiaomeng,Wang Guoqing.et al.Development and challenges of urban hydrology in a changing environment:I.hydrological response to urbanization[J].Advances in Water Science,2014,25(4):594-605.)

[10]徐宗学,叶陈雷.城市暴雨洪涝模拟:原理,模型与展望[J].水利学报,2021,52(4):381-392.(Xu Zongxue,Ye Chenlei.Simulation of urban flooding/waterlogging processes:principle,models and prospects[J].Journal of Hydraulic Engineering,2021,52(4):381-392.)

[11]臧文斌,赵雪,李敏,等.城市洪涝模拟技术研究进展及发展趋势[J].中国防汛抗旱,2020,30(11):1-13.(Zang Wenbin,Zhao Xue,Li Min,et al.Research progress and development trend of urban flood simulation technology[J].China Flood & Drought Management,2020,30(11):1-13.)

[12]Zhou Qianqian,Mikkelsen P S,Halsns K.et al.Framework for economic pluvial flood risk assessment considering climate change effects and adaptation benefits[J].Journal of Hydrology,2012,414-415:539-549.

[13]Horritt M S,Bates P D.Evaluation of 1D and 2D numerical models for predicting river flood inundation[J].Journal of Hydrology,2002,268(1):87-99.

[14]Pinel S,Bonnet M P,Silva J.et al.Flooding dynamics within an Amazonian floodplain:water circulation patterns and inundation duration[J].Water Resources Research,2020,56(1):e2019WR026081.

[15]劉家宏,李泽锦,梅超,等.基于TELEMAC-2D的不同设计暴雨下厦门岛城市内涝特征分析[J].科学通报,2019,64(19):2055-2066.(Liu Jiahong,Li Zejin,Mei Chao.et al.Urban flood analysis for different design storm hyetographs in Xiamen Island based on TELEMAC-2D[J].Chinese Science Bulletin,2019,64(19):2055-2066.)

[16]邵蕊,邵薇薇,苏鑫,等.基于TELEMAC-2D模型分析不同洪涝情景对城市应急响应时间的影响[J].清华大学学报:自然科学版,2022,62(1):60-69.(Shao Rui,Shao Weiwei,Su Xin.et al.Impact of various flood scenarios on urban emergency responses times based on the TELEMAC-2D model[J].Journal of Tsinghua University:Science and Technology,2022,62(1):60-69.)

[17]都利亚,王兆礼,祁旭阳,等.基于TELE MAC-2D模型的城区水库溃坝洪水数值模拟——以广州市龙洞水库为例[J].地球科学与环境学报,2022,44(5):850-859.(Du Liya,Wang Zhaoli,Qi Xu-yang.et al.Numerical simulation of dam-break flood in urban area based on TELEMAC-2D model-a case study for Longdong Reservoir in Guangzhou,China[J].Journal of Earth Sciences and Environment,2022,44(5):850-859.)

[18]Boettiger C.An introduction to Docker for reproducible research,with examples from the R environment[J].ACM SIGOPS Operating Systems Review,2014,49(1):71-79.

[19]田际,王大鹏,刘希念,等.基于Docker的发电企业私有云一体化信息管理平台开发[J].物联网技术,2021,11(5):51-54.(Tian Ji,Wang Dapeng,Liu Xinian.et al.Development of integrated information management platform for private cloud for power generation enterprises based on Docker[J].Internet of Things Technologies,2021,11(5):51-54.)

[20]徐棚.容器技术在国产操作系统环境中软件部署研究[D].石家庄:石家庄铁道大学,2021.(Xu Peng.Research on software deployment of container technology in domestic operating system environment[D].Shijiazhuang:Shijiazhuang Tiedao University,2021.)

[21]Ligier P L.Implementation of a rainfall-runoff model in TELEMAC-2D[C]//Proc of the 23rd TELEMAC-MASCARET User Conference.2016.