999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

容器技術(shù)在高性能計算環(huán)境中的應(yīng)用

2021-02-12 01:54:16盧莎莎肖海力王小寧
關(guān)鍵詞:環(huán)境

盧莎莎,肖海力,王小寧

中國科學(xué)院計算機(jī)網(wǎng)絡(luò)信息中心,高性能計算技術(shù)與應(yīng)用發(fā)展部,北京 100083

引 言

高性能計算環(huán)境聚合了國內(nèi)多個異構(gòu)高性能計算資源,由中間件SCE 軟件對計算資源進(jìn)行統(tǒng)一的管理及調(diào)度,屏蔽了底層計算資源的異構(gòu)性,為用戶提供統(tǒng)一的計算服務(wù)。目前,國家高性能計算環(huán)境已經(jīng)包括了19 個單位的超算系統(tǒng),部署了多個研究領(lǐng)域的600 余個應(yīng)用及工具軟件[1]。

環(huán)境中間件SCE 需要部署于各超算中心的前端服務(wù)器,以便完成資源聚合及管理,目前無法保證各前端服務(wù)器軟硬件的一致性,中間件的部署需要大量的人力和時間。同時,常用科學(xué)計算應(yīng)用軟件需要部署在環(huán)境的多個超算集群中,以滿足用戶的計算需求,部分應(yīng)用軟件需要大量的軟件依賴及復(fù)雜的環(huán)境配置,應(yīng)用軟件與超算系統(tǒng)自身軟件間的兼容是亟需解決的問題。

本文主要研究了Docker 及Singularity 相關(guān)容器技術(shù),實現(xiàn)了中間件SCE 及科學(xué)計算軟件LAMMPS等軟件的容器化封裝,并在國家高性能計算環(huán)境中進(jìn)行了部署驗證,在一定程度上解決了軟件在不同系統(tǒng)中的可移植性問題。

1 國家高性能計算環(huán)境介紹

國家高性能計算環(huán)境[2]聚合了包括“神威·太湖之光”[3]、“天河-2A”、“天河-1A”在內(nèi)的多個跨域的、異構(gòu)的高性能計算資源,屏蔽了作業(yè)管理系統(tǒng)、接入方式、管理制度等的異構(gòu)性,為科研人員提供了具有統(tǒng)一訪問入口、使用方法和用戶技術(shù)支持的高水平高性能計算應(yīng)用服務(wù)[4]。

國家高性能計算環(huán)境已經(jīng)接入包括中國科學(xué)院計算機(jī)網(wǎng)絡(luò)信息中心、國家超級計算無錫中心、國家超級計算廣州中心等在內(nèi)的19 個結(jié)點(diǎn)。目前,環(huán)境聚合計算能力超過460PF,聚合存儲能力超過310PB,提供計算化學(xué)、分子力學(xué)、高能物理、生命科學(xué)、海洋科學(xué)等領(lǐng)域的開源軟件、商業(yè)軟件和自主研發(fā)軟件[5]。

SCE 軟件[6]是國家高性能計算環(huán)境的中間件,環(huán)境利用SCE 軟件完成資源的管理及調(diào)度。SCE 軟件包含3 個功能模塊Client、 CS (Center Server)和FS (Front Server),其中CS、Client 部署于運(yùn)管中心,F(xiàn)S 部署于環(huán)境中各超算中心的前端服務(wù)器,SCE 軟件架構(gòu)圖如圖1 所示。

圖1 SCE 軟件架構(gòu)[7]Fig.1 SCE software architecture[7]

SCE 軟件需要部署在高性能計算環(huán)境各超算結(jié)點(diǎn)的前端服務(wù)器,服務(wù)器由結(jié)點(diǎn)單位自行配置,其軟硬件環(huán)境均不相同,導(dǎo)致了SCE 軟件部署過程非常繁瑣,亟需優(yōu)化部署方式以提升軟件部署效率。

2 容器技術(shù)介紹

容器是一種標(biāo)準(zhǔn)化的軟件單元,它將軟件源碼及其依賴關(guān)系打包,可以方便地在不同的系統(tǒng)環(huán)境之間進(jìn)行快速可靠的遷移,具有輕量化、平臺無關(guān)性、安全性等特征[8]。Docker 及Singularity 是科學(xué)計算領(lǐng)域廣泛應(yīng)用的容器技術(shù)代表。

2.1 Docker 技術(shù)

Docker[9]是dotCloud 開發(fā)的基于Linux Container 的高級容器引擎,采用客戶端-服務(wù)端的架構(gòu)模式,適用于大規(guī)模應(yīng)用服務(wù)部署的場景。與虛擬機(jī)技術(shù)相比,Docker 具有明顯的優(yōu)勢[10],包括:

(1)輕量級技術(shù):Docker 容器直接共享宿主機(jī)Linux 內(nèi)核,可以以秒級別的時間進(jìn)行啟動。

(2)能夠快速構(gòu)建標(biāo)準(zhǔn)化環(huán)境:利用Docker 可以快速構(gòu)建出完全相同的環(huán)境,包括操作系統(tǒng)及所有的軟件配置,解決了軟件部署環(huán)境的適配問題。

(3)方便對服務(wù)進(jìn)行橫向擴(kuò)展:能夠快速部署大量的標(biāo)準(zhǔn)化服務(wù),并且能夠保證服務(wù)間的隔離性。

2.2 Singularity 技術(shù)

Singularity[11]始于2015年美國勞倫斯伯克利國家 實驗 室(Lawrence Berkeley National Laboratory)的開源項目,專門為大規(guī)模、跨節(jié)點(diǎn)HPC(High Performance Computer)而開發(fā)的容器化技術(shù),并且能夠支持Docker 鏡像格式的轉(zhuǎn)換。

Singularity 具有以下特性:

(1)Singularity 的鏡像包含了軟件所有依賴關(guān)系的鏡像,能夠非常好的解決跨計算環(huán)境的兼容性問題。

(2)科學(xué)計算領(lǐng)域的應(yīng)用軟件大部分需要借助于MPI 之類的并行技術(shù),Singularity 增加了MPI 的兼容能力,帶有與宿主機(jī)相同MPI 版本的Singularity容器可直接通過mpirun 命令啟動,與超算環(huán)境集成更加便捷[12]。

(3)Singularity 可以直接與作業(yè)調(diào)度系統(tǒng)集成,無需為科學(xué)計算環(huán)境做額外的適配。

與Docker 不同的是,Singularity 啟動時,能夠保證用戶上下文保持不變,使得用戶權(quán)限在容器內(nèi)部和外部保持一致,避免用戶權(quán)限提升等不安全因素,更加適用于普通用戶使用應(yīng)用軟件的場景。經(jīng)過阿里云超算測試,Singularity 容器下測得的HPL (High-Performance Linpack)性能要略優(yōu)于Docker 容器,且與宿主機(jī)的實測HPL 性能相當(dāng)[13]。

3 基于Docker 的SCE 軟件容器化封裝

3.1 SCE 軟件容器化封裝

SCE 軟件按照功能分為CS、FS、Client 三個模塊,每個功能模塊都可以部署在不同的服務(wù)器中,其安裝流程和運(yùn)行所需的配置均不相同。因此,對SCE軟件的CS、FS 和Client 端均做了容器化的封裝,方便軟件靈活部署。以CentOS 7 鏡像為基礎(chǔ)鏡像,根據(jù)目標(biāo)模塊的不同,選擇對應(yīng)的CS、FS、Client 的源碼包進(jìn)行安裝,同時將各模塊需要的配置文件進(jìn)行掛載,完成鏡像構(gòu)建。利用Docker 中ENTRYPOINT指令,指定CS、FS、Client 容器啟動時需要進(jìn)行的操作,包括創(chuàng)建主機(jī)秘鑰、將配置文件拷貝至指定目錄、啟動相關(guān)服務(wù)等,保證容器啟動時所有服務(wù)及配置能夠自動運(yùn)行。具體流程如圖2 所示。

圖2 SCE 軟件容器化流程Fig.2 Building process of SCE containers

在實際運(yùn)行中,CS 端和FS 端均需要數(shù)據(jù)庫來存儲運(yùn)行數(shù)據(jù),為了方便部署,將數(shù)據(jù)庫服務(wù)從CS 端及FS 端剝離,構(gòu)建了獨(dú)立的MySQL 鏡像。MySQL 鏡像以MySQL 5.7 鏡像為基礎(chǔ),將CS 端、FS 端的數(shù)據(jù)庫初始化腳本掛載至鏡像指定目錄,當(dāng)MySQL 容器啟動時,自動執(zhí)行初始化腳本,完成相關(guān)數(shù)據(jù)庫表的創(chuàng)建,具體如圖3 所示。

圖3 MySQL 容器化流程Fig.3 Building process of MySQL container

整個高性能計算環(huán)境除了SCE 中間件之外,還需要底層高性能計算系統(tǒng)才能夠進(jìn)行作業(yè)的計算。本文以CentOS 7 鏡像為基礎(chǔ),安裝Torque 作業(yè)管理系統(tǒng),部署LAMMPS 軟件,完成了HPC 鏡像構(gòu)建,能夠更好地搭建開發(fā)測試環(huán)境。

默認(rèn)情況下,在Docker 容器中修改文件時,會直接存儲于容器的可讀寫層中,容器內(nèi)部數(shù)據(jù)會隨著容器的關(guān)閉一并消失。SCE 軟件運(yùn)行時,有大量的配置文件、運(yùn)行數(shù)據(jù)及用戶作業(yè)信息需要進(jìn)行存儲,這些數(shù)據(jù)需要長時間留存,不能隨著相關(guān)容器的關(guān)閉而消失。因此,在對SCE 軟件進(jìn)行容器化封裝時,必須要考慮數(shù)據(jù)持久化存儲的問題。

對于容器中持久化數(shù)據(jù)存儲[14],Docker 提供volumes 和bind mounts 兩種方式,其中,volumes 是在宿主機(jī)文件系統(tǒng)上的Docker 工作目錄下創(chuàng)建對應(yīng)的目錄來存儲數(shù)據(jù),其他非Docker 進(jìn)程無法修改其中的文件;bind mounts 是將宿主機(jī)的文件或目錄直接掛載到容器中,數(shù)據(jù)可以存儲于宿主機(jī)的任何位置,其數(shù)據(jù)可以被宿主機(jī)或者掛載它的所有容器讀寫。實際運(yùn)行中,SCE 軟件的CS 及Client 模塊會部署多個副本,同一模塊的多個副本中需要共享部分?jǐn)?shù)據(jù)存儲,以便對環(huán)境信息進(jìn)行同步更新。所以,SCE 容器的持久化存儲采取bind mounts 的方式進(jìn)行掛載。

通過分析SCE 軟件模塊的運(yùn)行模式,對需要持久化存儲的數(shù)據(jù)進(jìn)行了提取。對CS、FS、Client 容器,需要掛載WORKSPACE 和LOG 目錄作為持久化存儲目錄,WORKSPACE 目錄用于存放用戶提交作業(yè)過程中產(chǎn)生的文件,LOG 目錄用于存放環(huán)境運(yùn)行中產(chǎn)生的日志文件;MySQL 容器需要掛載DBSPACE目錄作為持久化存儲目錄,用于存放數(shù)據(jù)庫文件。需要持久化存儲的目錄在圖2、圖3 中以灰色模塊展示。

3.2 SCE 容器部署

SCE 軟件相關(guān)容器已經(jīng)部署于環(huán)境中多個結(jié)點(diǎn),經(jīng)過實際運(yùn)行驗證,各模塊容器均能夠穩(wěn)定運(yùn)行,具體部署方式如圖4 所示。

圖4 SCE 軟件容器化部署示意圖Fig.4 Deployment of SCE containers

4 基于Singularity 的應(yīng)用軟件容器化封裝

4.1 應(yīng)用軟件選擇

國家高性能計算環(huán)境中涉及計算化學(xué)、分子力學(xué)、高能物理等領(lǐng)域的科學(xué)計算軟件,涉及軟件種類較多,本文主要介紹其中常用軟件LAMMPS(Large- scale Atomic/Molecular Massively Parallel Simulator)的 容器化封裝及測試。

LAMMPS[15]軟件是美國Sandia 國家實驗室開發(fā)的一款開源軟件,可翻譯為大規(guī)模分子并行模擬器,廣泛應(yīng)用于分子動力學(xué)相關(guān)的計算和模擬工作。LAMMPS 軟件在國家高性能環(huán)境中使用廣泛,環(huán)境中已經(jīng)部署不同版本LAMMPS 軟件18 個,涉及13個超算系統(tǒng)。軟件使用環(huán)境利于測試及推廣。

4.2 開發(fā)環(huán)境搭建

開發(fā)環(huán)境采用單計算節(jié)點(diǎn),在開發(fā)環(huán)境完成應(yīng)用軟件的容器化封裝,開發(fā)環(huán)境參數(shù)如表1 所示。

表1 開發(fā)環(huán)境配置Table 1 Configuration of development environment

4.3 LAMMPS 容器化封裝

在LAMMPS 軟件的Singularity 容器化封裝過程中,采用分步打包的方式,留存不同層次的鏡像包,以便后期封裝更多應(yīng)用軟件時可以復(fù)用,具體封裝流程如下。

(1) 下載基礎(chǔ)操作系統(tǒng)鏡像,創(chuàng)建sce-CentOS鏡像

Singularity 鏡像可以由Docker 鏡像轉(zhuǎn)換,本部分直接從Docker Hub 下載CentOS 7 作為容器運(yùn)行基礎(chǔ)鏡像,進(jìn)行常用工具軟件的安裝及配置。

(2) 創(chuàng)建APP-CentOS 鏡像

APP-CentOS 鏡像基于sce-CentOS 鏡像構(gòu)建,構(gòu)建方式采用localimage 方式。主要進(jìn)行LAMMPS必需的FFTW 庫及OpenMPI 的安裝。為方便后續(xù)測試及用戶使用,鏡像中安裝了1.10.7、2.1.6 和3.0.2三個版本的OpenMPI。

(3) 創(chuàng)建LAMMPS 鏡像

LAMMPS 鏡像同樣采用localimage 方式,基于APP-CentOS 鏡像構(gòu)建。鏡像中基于不同版本的OpenMPI 對LAMMPS 軟件進(jìn)行編譯。為方便在超算系統(tǒng)中調(diào)用,采用Singularity 中app 模塊來對不同編譯版本的LAMMPS 的相關(guān)環(huán)境變量及啟動程序等進(jìn)行設(shè)置。

4.4 LAMMPS 容器測試

完成LAMMPS 鏡像構(gòu)建之后,在曙光測試集群、中國科學(xué)技術(shù)大學(xué)集群進(jìn)行了運(yùn)行時間以及MPI 兼容性的測試。

4.4.1 運(yùn)行時間測試

LAMMPS 容器運(yùn)行時間測試在曙光測試集群上進(jìn)行,該集群配置如表2 所示。

表2 曙光測試集群配置Table 2 Configuration of Sugon cluster

針對不同MPI 版本、不同運(yùn)行規(guī)模,在測試集群上對LAMMPS 鏡像進(jìn)行了測試。以宿主機(jī)中OpenMPI 2.1.6 編譯的LAMMPS 的運(yùn)行時間為基準(zhǔn),容器中LAMMPS 運(yùn)行時間誤差不超過2.63%。具體測試結(jié)果如圖5 所示。

圖5 LAMMPS 容器運(yùn)行時間Fig.5 Running time of LAMMPS container

4.4.2 MPI 兼容性測試

LAMMPS 軟件需要借助于MPI 進(jìn)行計算,Singularity 增加了MPI 的兼容能力,帶有與宿主機(jī)相同MPI 版本的Singularity 容器可直接通過mpirun命令啟動。

LAMMPS 容器與宿主機(jī)之間的MPI 兼容性測試在中國科學(xué)技術(shù)大學(xué)集群、上海交通大學(xué)集群、曙光集群、曙光測試集群等集群上進(jìn)行。其中中國科學(xué)技術(shù)大學(xué)集群、上海交通大學(xué)集群、曙光集群為正式對外服務(wù)集群,集群上已經(jīng)安裝了多個版本的OpenMPI 編譯器,中國科學(xué)技術(shù)大學(xué)集群測試環(huán)境配置如表3 所示,其他集群配置不再一一贅述。

表3 中國科學(xué)技術(shù)大學(xué)集群配置Table 3 Configuration of USTC cluster

測試結(jié)果表明,在宿主機(jī)與容器之間的MPI兼容性方面,OpenMPI 2 系列對版本要求較高,OpenMPI1、OpenMPI 3 和OpenMPI 4 系列兼容性較好。具體測試結(jié)果如表4 所示。

表4 MPI 兼容性測試Tables 4 Compatibility test of MPI

4.5 LAMMPS 容器應(yīng)用

目前,LAMMPS 容器已經(jīng)部署在國家高性能計算環(huán)境中,正式對外提供服務(wù)。圖6 為服務(wù)中可以選擇的LAMMPS 容器資源。

圖6 國家高性能計算環(huán)境中LAMMPS 容器部署Fig.6 LAMMPS container in National High Performance Computing Environment

4.6 其他應(yīng)用軟件

除LAMMPS 軟件之外,本文同時完成了GRO-MACS[16]軟件的容器化封裝,并在上海交通大學(xué)集群上對GROMACS 性能進(jìn)行了測試,軟件版本均選擇2020.2,具體結(jié)果如表5 所示。其中性能單位為ns/day,數(shù)值越高代表性能越好。由測試結(jié)果可以看出,GROMACS 在容器中與宿主機(jī)中運(yùn)行性能相當(dāng),可以部署在高性能計算環(huán)境中使用。

表5 GROMACS 容器測試Table 5 Testing of GROMACS container

5 總結(jié)與展望

本文對中間件SCE 及LAMMPS 等軟件進(jìn)行了容器化封裝,通過在國家高性能計算環(huán)境中部署驗證,容器可以正常運(yùn)行,能夠?qū)ν馓峁┓?wù)。中間件SCE 軟件的容器化,進(jìn)一步優(yōu)化了SCE 軟件的持續(xù)交付流程,并且能夠快速地對相關(guān)服務(wù)進(jìn)行橫向擴(kuò)展,提升環(huán)境承載能力;應(yīng)用軟件的容器化封裝,解決了應(yīng)用軟件與超算系統(tǒng)自有編譯環(huán)境的適配問題,提升了應(yīng)用軟件部署效率。

后續(xù)工作中,還需要對國家高性能計算環(huán)境運(yùn)行相關(guān)的LDAP 和Nagios 監(jiān)控等服務(wù)進(jìn)行容器化封裝,考慮利用Kubernetes 等技術(shù)對已有容器進(jìn)行編排管理,進(jìn)一步優(yōu)化部署方式。

對于應(yīng)用軟件,測試工作還需要進(jìn)一步完善,包括分析各超算系統(tǒng)的軟硬件特點(diǎn),針對網(wǎng)絡(luò)、CPU 類型、MPI 版本等對容器性能的影響進(jìn)行進(jìn)一步分析測試及優(yōu)化。同時,還需要進(jìn)一步擴(kuò)充科學(xué)計算軟件鏡像的數(shù)量,搭建應(yīng)用軟件鏡像倉庫,為用戶提供方便易用的科學(xué)計算軟件鏡像服務(wù)。

利益沖突聲明

所有作者聲明不存在利益沖突關(guān)系。

猜你喜歡
環(huán)境
長期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
孕期遠(yuǎn)離容易致畸的環(huán)境
不能改變環(huán)境,那就改變心境
環(huán)境與保護(hù)
環(huán)境
孕期遠(yuǎn)離容易致畸的環(huán)境
高等院校環(huán)境類公選課的實踐和探討
掌握“三個三” 兜底環(huán)境信訪百分百
我國環(huán)境會計初探
中國商論(2016年33期)2016-03-01 01:59:38
主站蜘蛛池模板: 超碰免费91| 99r在线精品视频在线播放| 在线国产91| 不卡无码h在线观看| 国产三级成人| 久久毛片免费基地| 欧美v在线| 一区二区三区国产| 国产偷国产偷在线高清| 国产日本一线在线观看免费| 粗大猛烈进出高潮视频无码| 亚洲欧美不卡中文字幕| 国产人在线成免费视频| 国产特级毛片aaaaaa| 久久久久久久久亚洲精品| 亚洲精品视频免费看| 欧洲日本亚洲中文字幕| 亚洲午夜国产片在线观看| 成年人福利视频| a级免费视频| 成人中文字幕在线| 亚洲成人播放| 国产一区二区三区夜色| 欧美中文字幕一区| 日韩欧美成人高清在线观看| 网友自拍视频精品区| 国产欧美精品一区aⅴ影院| 亚洲国产日韩在线成人蜜芽| 欧美国产日韩一区二区三区精品影视 | 二级特黄绝大片免费视频大片| 国产免费网址| 激情午夜婷婷| 无码专区国产精品一区| 一级黄色片网| 国产欧美日韩另类| 国产一区成人| 亚洲第一极品精品无码| 免费看黄片一区二区三区| 在线另类稀缺国产呦| 91尤物国产尤物福利在线| 在线无码九区| 在线国产欧美| 全部无卡免费的毛片在线看| 婷婷午夜影院| 色偷偷男人的天堂亚洲av| 亚洲视频一区| 热久久这里是精品6免费观看| 久久午夜夜伦鲁鲁片无码免费| 欧美视频在线第一页| 国产精品第5页| 欧美视频在线观看第一页| 国产精品久久久久久久久kt| 日韩在线欧美在线| 欧美视频在线不卡| 欧美视频免费一区二区三区| 成年片色大黄全免费网站久久 | 成人在线视频一区| 午夜性刺激在线观看免费| 欧美不卡在线视频| 国产成人精品2021欧美日韩| 天堂av综合网| 香蕉视频在线观看www| 国产美女91视频| a网站在线观看| 亚洲一区二区成人| 国产成人精品2021欧美日韩 | 欧美97色| 毛片免费试看| 欧美人与动牲交a欧美精品| 国产成人综合欧美精品久久| 国产精品私拍在线爆乳| 欧美一级99在线观看国产| 国产手机在线观看| 国产精品19p| 澳门av无码| 亚洲成人一区二区三区| av在线5g无码天天| 欧美中文一区| 操国产美女| 亚洲成人一区二区三区| 67194在线午夜亚洲| 东京热av无码电影一区二区|