CN109683909A - 一种基于Docker的MPI并行环境自动部署方法 - Google Patents

一种基于Docker的MPI并行环境自动部署方法 Download PDF

Info

Publication number
CN109683909A
CN109683909A CN201811449179.3A CN201811449179A CN109683909A CN 109683909 A CN109683909 A CN 109683909A CN 201811449179 A CN201811449179 A CN 201811449179A CN 109683909 A CN109683909 A CN 109683909A
Authority
CN
China
Prior art keywords
mpi
cluster
node
docker
automatic deployment
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
CN201811449179.3A
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.)
Kunming University of Science and Technology
Original Assignee
Kunming University of Science and Technology
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 Kunming University of Science and Technology filed Critical Kunming University of Science and Technology
Priority to CN201811449179.3A priority Critical patent/CN109683909A/zh
Publication of CN109683909A publication Critical patent/CN109683909A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出了基于Docker的MPI并行环境自动部署方法,属于分布式计算系统领域。本发明包括的简要步骤是:第一步对可用机器进行初始化,包括创建Swarm管理的容器云、配置NFS(Network File System)和创建私有镜像仓库。第二步通过独立的自动部署模块构建包含OpenMPI和自动配置脚本的镜像并推送至私有镜像仓库。第三步通过用户接口启动自动部署方法在多台机器上部署MPI并行环境。第四步通过用户接口编写MPI应用程序或启动基于MPI的应用软件完成并行运算,最终实现基于Docker的MPI并行环境自动部署全过程并验证其正确性、时效性和合理性。通过本方法所述步骤,可以快速便捷的部署出不同规模的MPI并行环境以供用户开发或运行基于MPI的应用软件。

Description

一种基于Docker的MPI并行环境自动部署方法
技术领域
本发明涉及一种基于Docker的MPI并行环境自动部署方法,属于分布式计算系统领域。
背景技术
随着大数据时代的到来,海量数据处理对计算性能的提升和计算资源的组织方式都提出了更高的要求,分布式架构的云计算也伴随着这一需求而不断的在进化演变。
近年来出现的Docker是一个开源项目,它使用了Linux容器技术,是目前为止较为成熟的容器技术的实现项目。它可以运行在大多数Linux的发行版、MaOS、Windows和各种云服务提供商上。它使用了如CGroups、Namespaces、 Unification File System(UnionFS),chroot等Linux内核中的一些特性来将应用运行在一个虚拟的环境中,这一技术被称之为容器技术。与虚拟机相比,虚拟机是虚拟化硬件的底层抽象技术,在底层操作系统之上虚拟出一个可以支撑操作系统的虚拟硬件环境。Docker容器是更轻量级的,因为抽象级别更高,只对操作系统进行虚拟化,因此最明显的特点就是启动快,资源占用小。基于Docker容器云的云计算架构是近年来快速发展的一种云计算平台架构形式。
为了提高计算性能,在大部分情况下采用在Linux操作系统上运行基于MPI 的应用软件来实现高性能并行计算。由于单台机器计算性能有限,基于MPI的分布式并行计算作为一种较好的计算方式被广泛采用。传统方式下部署分布式基于MPI的应用软件(特别是用于科学计算的软件)面临着操作过程繁琐,安装并解决三方库的依赖问题困难和编译配置困难等情况。同时,由于用户的使用偏好以及已有设备对Linux发行版的支持程度的不同,不同的用户采用了不同的 Linux发行版来运行基于MPI的应用软件,这导致了基于MPI的应用软件在不同操作系统环境下的安装和部署变得更加困难。
发明内容
本发明要解决的技术问题是提供一种基于Docker的MPI并行环境自动部署方法,在基于容器云的云计算环境下可以让基于MPI的应用软件在不改变自身代码的前提下去适应新的云计算环境并充分体现出部署的便利性。
本发明采用的技术方案是:一种基于Docker的MPI并行环境自动部署方法,包括以下步骤:
Step1、编写能够根据自身在MPI集群中的不同角色自动进行不同的操作的脚本以及自动维护集群列表的自动化脚本;
Step2、将测试用例连同OpenMPI相关软件和Step1中的自动化脚本一同通过Dockerfile构建方式构建镜像;
Step3、初始化共享服务基础平台;
Step4、通过自动部署模块封装Overlay网络创建命令以及集群节点容器启动命令,然后启动私有Overlay网络和集群节点容器并对子节点进行弹性扩容;
Step5、进行集群节点的发现与维护,主节点最先启动,启动后就开启对ARP 缓存的持续监控,各子节点启动后主动向主节点发起SSH连接并访问主节点dev 目录下的null文件,通过持续保持与null文件的连接,主节点便通过ARP缓存感知到子节点的IP变化以达到集群列表动态维护;
Step6、集群规模判定,主节点通过对集群列表进行监控,当达到预设集群规模值后就通过变量通知主节点停止对集群列表的监控;
Step7、启动用户接口的初始界面等待用户输入集群计算、终止并删除集群和进入集群节点查看运行情况的命令。
具体地,所述Step1中的自动化脚本指脚本根据主节点和子节点两种角色分别定义各自的行为,主节点角色在节点启动后通过自动化脚本自动开启对ARP 缓存的监控,子节点角色在节点启动后通过自动配置脚本自动向主节点发起并保持SSH连接,主节点通过读取ARP缓存内容自动维护MPI集群列表,当达到预设规模值后就启动初始界面等待用户输入下一步命令。
具体地,所述Step2中的测试用例指选用基于MPI进行并行计算的计算密集型或存储密集型应用程序进行测试。
具体地,所述Step3中的初始化共享服务基础平台指在所有可用机器上安装Docker和NFS组件,使用Docker Swarm将若干台同构或异构的机器上建立容器云并利用Docker官方提供的容器化镜像仓库镜像创建私有镜像仓库。
具体地,所述Step4中的自动部署模块包括部署服务、构建服务和销毁服务,部署服务会调用构建服务和销毁服务并封装实现了服务编排、弹性伸缩、集群节点发现与维护和用户接口的功能。
具体地,所述Step7中的用户接口是以命令的形式提供界面友好的MPI集群操作命令、进入容器执行命令的命令和欢迎界面,用户只需提供必要参数即可完成集群部署、集群计算、终止并删除集群和进入集群节点查看运行情况等多种操作。
本发明的有益效果是:本方法所述自动部署方法是一个面向MPI并行环境的通用部署方法,可以对所有基于MPI的应用软件进行并行计算提供良好支持;它有效的解决了在容器云环境下的MPI并行环境的自动部署问题,在提高部署效率的同时便捷地整合了更多的计算资源,使得基于MPI的应用软件一次编译后便可以方便地运行在不同的硬件资源上,极大地提高了集群的部署效率的同时方便用户把主要精力集中在业务流程和数据处理层面。
附图说明
图1是本发明的总体流程图;
图2是测试用例的镜像构造图并说明了自动配置脚本的封装内容;
图3是初始化过程中的容器云创建示意图;
图4测试用例镜像分发示意图;
图5是自动部署模块封装了的Overlay网络创建命令;
图6是自动部署模块封装了的MPI集群主节点创建命令;
图7是自动部署模块封装了的MPI集群子节点创建命令;
图8是自动部署模块部署好MPI集群环境后的初始界面;
图9是不同数量服务器上部署不同规模的集群的各项数据统计。
具体实施方式
实施例1:如图1-9所示,本发明的构思是:如图1所示,用户首先对可用机器进行初始化,包括创建Swarm管理的容器云、配置NFS和创建私有镜像仓库,自动部署模块包含构建服务、销毁服务和部署服务,构建服务和销毁服务分别用于构建镜像和集群销毁,部署服务会调用构建服务和销毁服务并实现了服务编排、弹性伸缩、集群节点发现与维护和用户接口等功能,在集群运算结束后用户可以从NFS指定目录获取处理结果;其中,
如图3所示,所述对可用机器初始化是用户人工操作来实现,待容器云和数据共享服务以及私有镜像仓库建立后,自动部署服务才能在容器云上基于数据共享服务和私有镜像仓库所提供的基础服务进行自动部署工作;
如图5所示,所述自动部署模块是一个逻辑模块,由独立于容器之外的用户接口、独立于容器之外的封装了相关的操作命令的功能模块和容器内的自动配置脚本共同构成。
如图2所示,所选择的测试用例是天文领域中属于计算密集型的可见度函数校准软件SAGECaL,采用分布式部署并使用MPI作为通讯接口进行节点间通讯,测试数据是SAGECaL自带的测试数据。
为了使本发明的目的、技术方案和优势更加清晰,下面结合附图和具体实施例子,对本发明进行进一步说明:
硬件环境:本次测试的硬件环境选用12台曙光天阔620R服务器,每台服务器配备2颗4核CPU和4G内存,服务器间使用千兆以太网相互连接且在同一个网段内且可以相互连通;
软件环境:使用Debian9.4stable作为服务器使用的操作系统并安装Docker18.03.1-ce和NFS组件;
Step1、编写自动化脚本,脚本根据主节点和子节点两种角色分别定义各自的行为,主节点角色在节点启动后通过自动化脚本自动开启对ARP缓存的监控,子节点角色在节点启动后通过自动配置脚本自动向主节点发起并保持SSH连接,主节点通过读取ARP缓存内容自动维护MPI集群列表,当达到预设规模值后就启动初始界面等待用户输入下一步命令;
Step2、构造测试用例SAGECaL镜像,镜像基于Debian8.6基础镜像采用Dockerfile构建镜像的方式进行构建,镜像中的主要软件包括SSH、CASACORE、 Glib、OpenBLAS、Gcc、Make、OpenMPI和SAGECal,同时将自动配置脚本和主节点生成的SSH公钥一同打包进SAGECaL镜像;
Step3、用户首先选择其中一台服务器作为基础服务节点并使用SSH登录进行初始化成为容器云主节点,包括创建Swarm管理的容器云、配置NFS和创建私有镜像仓库,自动部署模块按照Step2构造好SAGECaL镜像后将镜像推送到私有镜像仓库(如图4所示),待自动部署时各服务器子节点会自动拉去私有镜像仓库中指定的镜像并启动容器成为MPI集群节点;
Step4、用户通过用户接口启动自动部署模块后会首先创建Overlay网络(如图5所示),然后根据编排服务中指定的MPI集群编排规则依次启动MPI集群主节点和MPI集群子节点(如图6、7所示),最初MPI集群的主节点和子节点都只会启动一个,但子节点会根据启动的MPI集群规模进行自动扩容;
Step5、MPI集群的主节点在启动后会开启对ARP缓存的持续监控,MPI集群的各子节点启动后会主动向主节点发起SSH连接并访问主节点dev目录下的 null文件,通过持续保持与null文件的连接,主节点便通过ARP缓存感知到子节点的IP变化以达到集群列表动态维护;
Step6、自动部署模块通过使用启动自动部署命令传入的集群规模参数对比集群列表节点数进行集群规模判定,当达到预设集群规模值后就通过 CLUSTER_GET_READY变量通知主节点停止对集群列表的监控;
Step7、当Step6中判定所自动部署的MPI集群规模达到预设规模后启动初始界面(如图8所示),用户通过初始界面输入测试用例SAGECaL的集群计算命令进行计算并将计算结果存放到NFS指定目录。
上面结合附图及测试运行结果对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (6)

1.一种基于Docker的MPI并行环境自动部署方法,其特征在于,包括以下步骤:
Step1、编写能够根据自身在MPI集群中的不同角色自动进行不同的操作的脚本以及自动维护集群列表的自动化脚本;
Step2、将测试用例连同OpenMPI相关软件和Step1中的自动化脚本一同通过Dockerfile构建方式构建镜像;
Step3、初始化共享服务基础平台;
Step4、通过自动部署模块封装Overlay网络创建命令以及集群节点容器启动命令,然后启动私有Overlay网络和集群节点容器并对子节点进行弹性扩容;
Step5、进行集群节点的发现与维护,主节点最先启动,启动后就开启对ARP缓存的持续监控,各子节点启动后主动向主节点发起SSH连接并访问主节点dev目录下的null文件,通过持续保持与null文件的连接,主节点便通过ARP缓存感知到子节点的IP变化以达到集群列表动态维护;
Step6、集群规模判定,主节点通过对集群列表进行监控,当达到预设集群规模值后就通过变量通知主节点停止对集群列表的监控;
Step7、启动用户接口的初始界面等待用户输入集群计算、终止并删除集群和进入集群节点查看运行情况的命令。
2.根据权利要求1所述的基于Docker的MPI并行环境自动部署方法,其特征在于:所述Step1中的自动化脚本指脚本根据主节点和子节点两种角色分别定义各自的行为,主节点角色在节点启动后通过自动化脚本自动开启对ARP缓存的监控,子节点角色在节点启动后通过自动配置脚本自动向主节点发起并保持SSH连接,主节点通过读取ARP缓存内容自动维护MPI集群列表,当达到预设规模值后就启动初始界面等待用户输入下一步命令。
3.根据权利要求1所述的基于Docker的MPI并行环境自动部署方法,其特征在于:所述Step2中的测试用例指选用基于MPI进行并行计算的计算密集型或存储密集型应用程序进行测试。
4.根据权利要求1所述的基于Docker的MPI并行环境自动部署方法,其特征在于:所述Step3中的初始化共享服务基础平台指在所有可用机器上安装Docker和NFS组件,使用Docker Swarm将若干台同构或异构的机器上建立容器云并利用Docker官方提供的容器化镜像仓库镜像创建私有镜像仓库。
5.根据权利要求1所述的基于Docker的MPI并行环境自动部署方法,其特征在于:所述Step4中的自动部署模块包括部署服务、构建服务和销毁服务,部署服务会调用构建服务和销毁服务并封装实现了服务编排、弹性伸缩、集群节点发现与维护和用户接口的功能。
6.根据权利要求1所述的基于Docker的MPI并行环境自动部署方法,其特征在于:所述Step7中的用户接口是以命令的形式提供界面友好的MPI集群操作命令、进入容器执行命令的命令和欢迎界面,用户只需提供必要参数即可完成集群部署、集群计算、终止并删除集群和进入集群节点查看运行情况的操作。
CN201811449179.3A 2018-11-30 2018-11-30 一种基于Docker的MPI并行环境自动部署方法 Pending CN109683909A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811449179.3A CN109683909A (zh) 2018-11-30 2018-11-30 一种基于Docker的MPI并行环境自动部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811449179.3A CN109683909A (zh) 2018-11-30 2018-11-30 一种基于Docker的MPI并行环境自动部署方法

Publications (1)

Publication Number Publication Date
CN109683909A true CN109683909A (zh) 2019-04-26

Family

ID=66185901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811449179.3A Pending CN109683909A (zh) 2018-11-30 2018-11-30 一种基于Docker的MPI并行环境自动部署方法

Country Status (1)

Country Link
CN (1) CN109683909A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297646A (zh) * 2019-06-29 2019-10-01 中国海洋大学 一种海洋模式环境自动部署软件
CN110430234A (zh) * 2019-06-28 2019-11-08 苏州浪潮智能科技有限公司 一种为容器搭建并行信息传递接口集群的方法与装置
CN110727503A (zh) * 2019-10-17 2020-01-24 科大讯飞(苏州)科技有限公司 容器部署方法、装置、设备、存储介质及容器部署系统
CN110855739A (zh) * 2019-09-25 2020-02-28 烽火通信科技股份有限公司 一种基于容器技术的异地及异构资源统一管理方法及系统
CN111222572A (zh) * 2020-01-06 2020-06-02 紫光云技术有限公司 一种面向办公场景的光学文字识别方法
CN111552908A (zh) * 2020-04-30 2020-08-18 深信服科技股份有限公司 终端、系统和应用程序的运行方法
CN111857757A (zh) * 2020-07-23 2020-10-30 上海方联技术服务有限公司 一种基于容器云的航拍图像处理服务的高效部署方法
CN111897539A (zh) * 2020-07-20 2020-11-06 国云科技股份有限公司 一种根据服务角色的进行应用部署的方法及装置
CN113448837A (zh) * 2020-11-03 2021-09-28 北京新氧科技有限公司 开发及测试环境部署方法、系统、电子设备及介质
CN115129429A (zh) * 2022-09-01 2022-09-30 南京翼辉爱智物联技术有限公司 容器应用管理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN107577496A (zh) * 2017-09-15 2018-01-12 济南浚达信息技术有限公司 一种基于Docker部署桌面云管理平台的系统及其工作方法与应用
US20180262459A1 (en) * 2017-03-10 2018-09-13 Nicira, Inc. Suppressing arp broadcasting in a hypervisor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
US20180262459A1 (en) * 2017-03-10 2018-09-13 Nicira, Inc. Suppressing arp broadcasting in a hypervisor
CN107577496A (zh) * 2017-09-15 2018-01-12 济南浚达信息技术有限公司 一种基于Docker部署桌面云管理平台的系统及其工作方法与应用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
D. MORRIS,ETC.: "Use of Docker for deployment and testing of astronomy software", 《ASTRONOMY & COMPUTING》 *
NIKYLE NGUYEN,ETC.: "Distributed MPI Cluster with Docker Swarm Mode", 《2017 IEEE 7TH ANNUAL COMPUTING AND COMMUNICATION WORKSHOP AND CONFERENCE (CCWC)》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110430234B (zh) * 2019-06-28 2022-03-01 苏州浪潮智能科技有限公司 一种为容器搭建并行信息传递接口集群的方法与装置
CN110430234A (zh) * 2019-06-28 2019-11-08 苏州浪潮智能科技有限公司 一种为容器搭建并行信息传递接口集群的方法与装置
CN110297646A (zh) * 2019-06-29 2019-10-01 中国海洋大学 一种海洋模式环境自动部署软件
CN110855739A (zh) * 2019-09-25 2020-02-28 烽火通信科技股份有限公司 一种基于容器技术的异地及异构资源统一管理方法及系统
CN110727503A (zh) * 2019-10-17 2020-01-24 科大讯飞(苏州)科技有限公司 容器部署方法、装置、设备、存储介质及容器部署系统
CN110727503B (zh) * 2019-10-17 2021-04-20 科大讯飞(苏州)科技有限公司 容器部署方法、装置、设备、存储介质及容器部署系统
CN111222572A (zh) * 2020-01-06 2020-06-02 紫光云技术有限公司 一种面向办公场景的光学文字识别方法
CN111552908A (zh) * 2020-04-30 2020-08-18 深信服科技股份有限公司 终端、系统和应用程序的运行方法
CN111897539A (zh) * 2020-07-20 2020-11-06 国云科技股份有限公司 一种根据服务角色的进行应用部署的方法及装置
CN111897539B (zh) * 2020-07-20 2024-03-29 国云科技股份有限公司 一种根据服务角色的进行应用部署的方法及装置
CN111857757A (zh) * 2020-07-23 2020-10-30 上海方联技术服务有限公司 一种基于容器云的航拍图像处理服务的高效部署方法
CN111857757B (zh) * 2020-07-23 2023-02-10 上海方联技术服务有限公司 一种基于容器云的航拍图像处理服务的高效部署方法
CN113448837B (zh) * 2020-11-03 2024-03-19 北京新氧科技有限公司 开发及测试环境部署方法、系统、电子设备及介质
CN113448837A (zh) * 2020-11-03 2021-09-28 北京新氧科技有限公司 开发及测试环境部署方法、系统、电子设备及介质
CN115129429A (zh) * 2022-09-01 2022-09-30 南京翼辉爱智物联技术有限公司 容器应用管理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109683909A (zh) 一种基于Docker的MPI并行环境自动部署方法
CN109831500B (zh) Kubernetes集群中配置文件与Pod的同步方法
CN111522628A (zh) 一种基于OpenStack的Kubernetes集群搭建部署方法、架构及存储介质
US8725875B2 (en) Native cloud computing via network segmentation
Nithya et al. SDCF: A software-defined cyber foraging framework for cloudlet environment
US20140280805A1 (en) Two-Sided Declarative Configuration for Cloud Deployment
US10235206B2 (en) Utilizing input/output configuration templates to reproduce a computing entity
CN111124607A (zh) Fpga虚拟化部署实现高速安全的服务器集群管理方法
WO2014069827A1 (en) System and method for providing data analysis service in a cloud environment
CN103685441B (zh) 一种基于龙芯终端的远程桌面控制系统
US11363093B2 (en) Multi-stage pipelining for distributed graph processing
US20190018706A1 (en) Network Service Infrastructure Management System and Method of Operation
Bohez et al. Mobile, collaborative augmented reality using cloudlets
Nie et al. Energy-aware multi-dimensional resource allocation algorithm in cloud data center
WO2018182746A1 (en) Hotpluggable runtime
CN102664952B (zh) 一种对嵌入式设备集群管理及监控的方法
US9098334B2 (en) Special values in oracle clusterware resource profiles
Fan et al. A live migration algorithm for containers based on resource locality
Zhang et al. Transparent computing: Development and current status
Malekimajd et al. Minimizing latency in geo-distributed clouds
Rac et al. At the edge of a seamless cloud experience
US20230065444A1 (en) Provisioning of physical servers through hardware composition
Lu et al. Vega LingCloud: a resource single leasing point system to support heterogeneous application modes on shared infrastructure
US11847611B2 (en) Orchestrating and automating product deployment flow and lifecycle management
Zhang et al. Repeatable multi-dimensional virtual network embedding in cloud service platform

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190426

RJ01 Rejection of invention patent application after publication