SkyForm任務調度系統技術速遞(第一期)

Apptainer容器作業

Apptainer是專為HPC設計的容器技術,是Singularity容器技術的一個分支。它管理簡便,不像Docker那樣需要啟動Linux服務(docker)。普通用戶可以簡便地上傳容器鏡像文件,讓后直接使用。

AIP對Apptainer/Singularity作業的支持,尤其是MPI的支持進行了優化,保證多節點MPI作業在每個節點上只有一個容器。

Apptainer/Singularity的容器鏡像可以輕易從Docker鏡像庫下拉。

對于Enterprise Linux (RHEL、CentOS、Oracle Linux、Rocky Linux等),Apptainer安裝包下載路徑為:

https://github.com/apptainer/apptainer/releases/download/v1.0.2/apptainer-1.0.2-1.x86_64.rpm

確保每臺需要運行Apptainer作業的節點上都安裝了以上的Apptainer軟件包。

 

制作鏡像文件

鏡像文件制作需要root權限。系統管理員可以自行制作,然后把鏡像文件放到共享文件系統中。用戶也可在自己有root訪問權限的Linux服務器上制作鏡像,然后上傳到自己的HOME目錄中。

apptainer build centos7.sif docker:centos:7

容器制作的方法請參考Apptainer文檔:https://apptainer.org/docs/user/main/

 

遞交Apptainer簡單作業

csub -I apptainer run /opt/containers/centos7.sif id

Job 4362 has been submitted to the default queue [medium].

Job 4362 is waiting to be started...

Job 4362 has started on host linux7.

uid=997(cadmin) gid=1006(grp_admin) groups=1006(grp_admin),1005(admin)

 

遞交Apptainer MPI作業

AIPMPI集成腳本impi-mpirun(支持Intel MPI、MPICH、MVAPICH)和ompi-mpirun(支持OpenMPIIBM MPI)同時支持Apptainer容器作業。遞交作業時有三個環境變量或csub參數可以使用:

環境變量

csub參數

描述

CB_SINGULARITY_IMAGE

-Si

指定Apptainer鏡像文件絕對路徑

CB_SINGULARITY_OPTIONS

-So

指定apptainer run命令行可選參數

APPTAINER_BIND

-Sb

指定容器中掛載主機上的目錄(HOME不用掛載)

例子:遞交OpenMPI Apptainer作業,共需128個核,每個節點32個核,交互式作業作業輸出文件為作業號.out:

source /opt/openmpi/openmpi.env

csub -Si /opt/containers/centos7.sif -Sb /opt/openmpi -n 128 -R map[perhost=32] -I -o %J.txt ompi-mpirun ./mympi_prog

同樣的方法也可用于Intel MPI、MPICH、MVAPICH,只需把ompi-mpirun改成impi-mpirun。

在以上的例子中,AIP會用兩個容器來運行作業,每個節點上一個apptainer容器,每個容器中運行32MPI任務。

與普通MPI作業類似,AIP對整個作業在所有節點上的進程都進行監控,在殺死作業是確保所有節點上屬于這個作業的進程都殺掉。

推薦閱讀 

在線咨詢 MESSAGE

姓名 *

電話 *

郵箱 *

咨詢意向 *

公司名稱

所屬行業

需求概述 *

{转码词},{转码词1},{转码词2},{转码词3}