资讯

Apptainer 是什么?高性能计算集群上常用的容器工具

2026-11-053 分钟阅读百科
TL;DRApptainer(原名 Singularity)是专为高性能计算和科学计算设计的开源容器平台,2015 年诞生于劳伦斯伯克利国家实验室,2021 年加入 Linux 基金会并更名;它不需要管理员权限即可运行,以单个镜像文件分发,便于在超算集群上复现软件环境和运行 GPU 任务。

Apptainer 是一个专门为高性能计算(HPC)和科学计算设计的开源容器平台。它的前身是 Singularity,2015 年由美国劳伦斯伯克利国家实验室的 Gregory Kurtzer 发起开发。2021 年,该项目加入 Linux 基金会,并更名为 Apptainer。它在大学、科研机构和超级计算中心的计算集群上被广泛使用。

容器是什么

容器是一种把应用程序和它所依赖的全部环境,包括各种软件库、配置、甚至操作系统的部分文件,一起打包起来的技术。打包好的容器可以在不同的计算机上运行,并且保证运行环境完全一致。这解决了一个常见的烦恼:“这个程序在我的电脑上能跑,到了你的电脑上就跑不起来了。”最流行的容器工具是 Docker。

为什么超算集群需要 Apptainer

Docker 在云计算和互联网领域非常流行,但在高性能计算集群上使用时存在一些问题。安全问题:Docker 的守护进程通常需要以管理员权限运行,在一个由成百上千个用户共享的集群上,如果让普通用户运行 Docker,就可能获得整个系统的管理员权限,带来严重的安全隐患,集群管理员一般不允许这样做。与集群环境的配合:高性能计算集群有自己的作业调度系统、并行文件系统和高速网络,需要容器能够很好地与它们配合。

Apptainer 就是为了解决这些问题而设计的:普通用户不需要管理员权限就能运行容器,容器中的用户身份与集群上的用户身份保持一致,用户在容器内外拥有相同的权限,不会因为使用容器而获得额外的权限。它默认就能访问用户的主目录和集群的共享文件系统,可以直接使用集群的作业调度系统、MPI 并行计算库和高速网络,也能方便地使用 GPU。

单个文件的镜像

Apptainer 的另一个特点是,它的容器镜像通常是一个单独的文件,格式叫 SIF(Singularity 镜像格式)。整个软件环境就是一个文件,可以像普通文件一样复制、移动、分享和存档,非常便于在不同的集群之间迁移,以及长期保存科研的计算环境。Apptainer 还可以直接从 Docker 镜像仓库拉取镜像并转换使用,所以用户可以利用大量现成的 Docker 镜像。

在科研和 AI 中的作用

在科学研究中,可重复性非常重要:其他研究者需要能够复现论文中的计算结果。用容器把计算环境打包起来,就能确保几年之后,或者在其他人的计算机上,依然可以得到同样的结果。在 AI 领域,深度学习框架、CUDA、各种依赖库的版本组合非常复杂,用容器封装好环境,研究人员就能在大学或国家的超算中心的 GPU 集群上方便地运行模型训练任务,而不必为配置环境而烦恼。