Singularity 是与 docker 类似的容器工具。所谓容器指的是一个标准的软件单元,它打包代码及其所有依赖项,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境。
请先申请计算资源再使用,必须在计算节点上运行singularity容器
平台安装有3.8.7
版本
3.8.7
版本安装在/opt/app/singularity/
目录下,可以用绝对路径来调用可执行文件,例如:
$ /opt/app/singularity/bin/singularity --version
singularity version 3.8.7
也可以在使用前先指定环境变量,再直接使用singularity命令,例如:
$ export PATH=$PATH:/opt/app/singularity/bin
$ singularity --version
singularity version 3.8.7
超算平台提供了一些封装好的基于GPU计算节点的singularity容器镜像,部署于/opt/app/sif/目录内
格式 | 创建命令 | 优势 |
sif | singularity pull |
压缩格式、只读 |
sandbox | singularity build --sandbox |
可写,需要对镜像更新时使用 |
功能 | 命令行 |
sif 转 sandbox | singularity build --sandbox alpine alpine.sif |
sandbox 转 sif | singularity build alpine2.sif alpine |
命令 | 用法说明 |
singularity search |
用于从远程镜像库查找可用的sif镜像。 |
singularity pull |
用于从远程地址拉取镜像并保存为sif格式。 |
singularity build |
可以从本地镜像仓库或者远程镜像仓库创建得到本地镜像, 也可以用于镜像格式转换。 |
singularity shell |
用于以交互方式进入镜像, 如果镜像为sandbox格式加上-w参数可以对镜像进行修改。 |
singularity exec |
用于以非交互方式运行镜像中的命令。 |
Sylabs Cloud Library (搜索镜像 https://cloud.sylabs.io)
#官方库(Sylabs Cloud)下载Singularity镜像
$ singularity pull library://library/default/ubuntu:20.04
Singularity Hub Library (搜索镜像 https://singularityhub.com)
#Singularity Hub下载Singularity镜像
$ singularity pull shub://vsoch/singularity-images
Docker Hub Library (搜索镜像 https://hub.docker.com)
#Docker镜像转Singularity镜像
$ singularity pull docker://ubuntu:20.04
#交互式运行
[user@gpuN ~]$ singularity shell ubuntu_20.04.sif bash
Singularity> echo 'hello world'
hello world
Singularity>
#直接运行
[user@gpuN ~]$ singularity exec ubuntu_20.04.sif echo 'hello world'
#打包
[user@gpuN ~]$ singularity build blast.sif blast
#查看系统默认glibc版本
[user@gpuN ~]$ ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc
#创建容器实例后查看glibc版本
[user@gpuN ~]$ singularity shell /opt/app/sif/rocky8.sif
Singularity> ldd --version
ldd (GNU libc) 2.28
Copyright (C) 2018 Free Software Foundation, Inc.
#再次创建容器实例后查看glibc版本
[user@gpuN ~]$ singularity shell /opt/app/sif/ubuntu-22.04-amd64.sif
Singularity> ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
#创建容器实例并加载nVidia驱动
[user@gpuN ~]$ singularity shell --nv -B /opt/app/nvidia/535.154.05/lib/ /opt/app/sif/ubuntu-22.04-amd64.sif
#设置环境变量
Singularity> export LD_LIBRARY_PATH=/opt/app/nvidia/535.154.05/lib/:$LD_LIBRARY_PATH
#测试运行
Singularity> nvidia-smi
Tue Nov 12 21:28:35 2024
+----------------------------------------------------------------
| NVIDIA-SMI 535.154.05 Driver Version: 535.154.05
EaaS应用软件 | singularity https://hpc.cloud/d/252-singularity