在 Ubuntu 20.04 上运行使用 MPI 的程序时,系统会给我一个“MIT-MAGIC-COOKIE-1 密钥无效”的警告。我最近才升级;使用 19.10 时没有遇到这样的问题。
我想知道出了什么问题。
以下是一些系统结果:
$ xauth list
Yantra5/unix: MIT-MAGIC-COOKIE-1 d27adab3ff430390b17c59fb0f6e7e28
#ffff#59616e74726135#: MIT-MAGIC-COOKIE-1 d27adab3ff430390b17c59fb0f6e7e28
$ hostnamectl status
Static hostname: Yantra5
Icon name: computer-laptop
Chassis: laptop
Machine ID: 42b9dd9e9200409c81515ce51e5f9d52
Boot ID: 42be2b4557bf4d29934673457c4560b2
Operating System: Ubuntu 20.04.1 LTS
Kernel: Linux 5.4.0-42-generic
Architecture: x86-64
我在 Ubuntu 20.04 上运行 openmpi。所有带有 MPI_Init() 的程序都向我发出相同的警告。
这可能是一个相关问题。
答案1
问题仍然存在吗?我遇到了和你一样的问题,或者你提到的问题,我已修复(“它自己修复了”更准确)。
在本地计算机上安装 MPI 之前,我安装了 NVIDIA 驱动程序以使用 OpenCL 和 CUDA,并遇到了同样的警告。我切换回 X.Org 驱动程序(我的做法是:软件和更新 -> 设置 -> 附加驱动程序 -> 使用 X.Org),重新启动后警告消息就消失了。
我尝试再次切换到我的 NVIDIA 驱动程序,重新启动后警告没有再次出现,所以最终只需更换驱动程序就可以解决问题。这种方法并不优雅,也没有解释太多,但值得一试。此外,由于我无法重现该问题,因此可能只需“关闭并重新打开”就可以解决问题,这就是我询问您的问题是否仍然存在的原因。
这是在花了一个多小时寻找类似问题的答案后,出于完全绝望而做出的决定。,,xhost +local:
或者没有改变任何东西,也没有在 mpirun 选项中指定 DISPLAY (如xhost +
unset DISPLAY
export DISPLAY=whatever:X.X
官方文档)。我还重新启动了(在更改驱动程序之前),但grep xauth ~/.bash*
没有任何结果(所以我的 .Xauthority 文件没有从终端被修改)。
我发现避免该问题的另一种方法是禁用图形界面并仅使用命令行(ctrl + alt + F3),但我认为与没有图形界面相比,警告只是一个小小的不便。
对于那些比我更了解 mpi 和 Xserver 并且想要解决这个问题的人来说,这里有一些线索:
- 问题这里可能相关,显然用 进行编译
mpich
解决了这个问题,而当我用 编译一个小的 c 脚本时mpicc
我收到了警告。
对于那些遇到这种情况、更换驱动程序 + 重新启动不起作用并且和我一样对 xauth 和 .Xauthority 一无所知的人来说,这里有一些线索:
答案2
该问题是由库引起的libhwloc
,该库由OpenRTE
(OpenMPI 组件)用于在启动并行进程期间探索节点的硬件拓扑。当hwloc_topology_load()
被调用时,libhwloc
会遍历其所有可用组件,这些组件以插件形式实现。其中一个组件gl
负责收集有关系统图形设备的信息,并使用 X11 调用,例如XOpenDisplay()
,如果无法连接到 X11 服务器,则会生成错误消息“MIT-MAGIC-COOKIE-1 密钥无效”。
在许多情况下,HPC 集群上不需要此 gl 组件,可以通过设置HWLOC_COMPONENTS
环境变量来排除它来安全地禁用它:
export HWLOC_COMPONENTS="-gl"