SkyForm任务调度系统技术速递(第一期)

Apptainer容器作业

Apptainer是专为HPC设计的容器技术,是Singularity容器技术的一个分支。它管理简便,不像Docker那样需要启动Linux服务(docker)。普通用户可以简便地上传容器镜像文件,让后直接使用。

AIP对Apptainer/Singularity作业的支持,尤其是MPI的支持进行了优化,保证多节点MPI作业在每个节点上只有一个容器。

Apptainer/Singularity的容器镜像可以轻易从Docker镜像库下拉。

对于Enterprise Linux (RHELCentOSOracle LinuxRocky 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 MPIMPICHMVAPICH)和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 MPIMPICHMVAPICH,只需把ompi-mpirun改成impi-mpirun

在以上的例子中,AIP会用两个容器来运行作业,每个节点上一个apptainer容器,每个容器中运行32MPI任务。

与普通MPI作业类似,AIP对整个作业在所有节点上的进程都进行监控,在杀死作业是确保所有节点上属于这个作业的进程都杀掉。

推荐阅读 

在线咨询 MESSAGE

姓名 *

电话 *

邮箱 *

咨询意向 *

公司名称

所属行业

需求概述 *