我正在使用运行 Centos 6 的超级计算机设施。我想要使用的节点有 3 个 Tesla V100。问题是该节点上安装的 GLIBC 版本与最新版本的 PyTorch I 不兼容必须使用。
我愿意不是有 root 权限。因此,我需要一种从用户级别使用另一个 GLIBC 的方法。我可以与系统管理员交谈并从 root 权限执行操作(例如使用 Docker 或类似操作),但我无法全局重新安装操作系统或 GLIBC。我曾尝试自己在没有 root 权限的情况下安装 GLIBC,但无法正确完成;它没有奏效。这需要太多时间,而且找不到正确完成它的教程。
我有一些想法,比如尝试运行一个可以访问节点并使用其他操作系统的容器;当我预定的计算时间结束时,我可以以与得到节点时相同的方式离开;以供超级计算机设施的下一个用户使用。
我也在考虑 chroot;下载 Centos 8 的 ISO 并将 chroot 放入其中,但我不知道它是否会使用主机操作系统使用的 GLIBC,还是 Centos 8 GLIBC。
您建议我做什么?您认为 Docker 能满足我的需求吗?或者其他容器化解决方案?继续尝试安装其他 GLIBC 吗?
答案1
我曾尝试自己安装 GLIBC,无需 root 权限,但无法正确完成;没有成功。这花费了太多时间,而且找不到正确的教程。
与现有 libc 并行安装不同的 libc 太难了。我不会尝试这样做,尤其是在共享系统上。
容器是 chroot,但更好,隔离性更强。使用容器代替 chroot,这样您就可以利用工具和预先存在的图像。
但是,容器主机(或虚拟机)有内核要求。您将需要 nvidia 的 Linux 内核驱动程序。支持最近的发行版,例如通过 DKMS 支持的 EL 7 和 EL8。
是的,可以使用容器中的 GPU。请参阅如何在 RHEL 8 中的裸机容器中启用 NVIDIA GPU和从中提取的 shell 脚本. 向您展示如何安装kmod-nvidia-latest-dkms
,nvidia-container-toolkit
以及一些SELinux 政策保持容器隔离。
我认为您无法逃避主机操作系统的操作系统升级。 CentOS 6 已停产,不再接收安全更新。 您需要的用于此 GPU 的内核驱动程序仅在更高版本的操作系统上受支持。 Red Hat 最喜欢的容器工具 podman、podman 在旧操作系统上也不存在。