我正在使用运行 Centos 6 的超级计算机设施。我要使用的节点有 3 Tesla V100。问题是安装在该节点上的 GLIBC 版本与我必须使用的最新版本的 PyTorch 不兼容。
我没有根。因此,我需要一种从用户级别使用另一个 GLIBC 的方法。我可以与系统管理员交谈并从 root 做一些事情(比如使用 Docker 或类似的东西),但我无法在全球范围内重新安装 OS 或 GLIBC。我曾尝试在没有 root 的情况下自行安装 GLIBC,但无法正确安装;那没起效。这需要太多时间,并且找不到正确的教程。
我有一些想法,比如尝试运行一个可以访问节点并使用其他操作系统的容器;当我预定的计算时间结束时,我可以按照我得到它的方式离开节点;为超级计算机设施的下一个用户。
我也在考虑 chroot;下载 Centos 8 的 ISO 并 chroot 到其中,但我不知道它是否会使用主机操作系统使用的 GLIBC 或 Centos 8 GLIBC。
你建议我做什么?你认为 Docker 会满足我的需求吗?还是其他容器化解决方案?继续尝试安装其他 GLIBC?
与现有的并行安装不同的 libc 太困难了。我不会尝试,尤其是在共享系统上。
容器是 chroots 但更好,具有更多的隔离性。使用容器而不是 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 也不存在于旧操作系统上。