[Submitted on 29 Jul 2026]

View PDF

Abstract:在生产级超级计算机的限制下,高性能计算的可复现性仍然困难重重:无 root 权限、网络受限,以及日益复杂的软件栈涵盖 C/C++、Fortran、Python、MPI 和 GPU 运行时。基于 environment modules 和 Conda 的传统方法需要手动介入查找依赖、将系统库泄漏到构建中,并且无法跨项目组合。容器有助于部署,但本身并不能保证可复现性。我们报告了使用 Nix 构建混合 HPC/AI 软件栈的经验,涵盖在无 root 的工作站上进行本地开发,以及将 Apptainer 镜像部署到生产集群上。Nix 一致的包布局、完整环境隔离和基于 flake 的组合解决了我们遇到的依赖发现、泄漏和组合问题,同时将 C/C++ 和 Python 管理统一在一个声明式规范下,该规范还能生成部署容器。我们讨论了与 Spack 和 Guix 的权衡、通过 CMake presets 解决的开发与生产分离,以及 Nixpkgs 中 ML 包覆盖的当前空白。

Submission history

From: Wenke DU [view email] [via CCSD proxy]
[v1] Wed, 29 Jul 2026 09:37:51 UTC (94 KB)