hwloc + lstopo无法在双CPU机器上为Open-MPI生成拓扑

我一直在尝试设置一个双CPU工作站(Dell Precision 7820)以使用openmpi 2.1.1-8(在Ubuntu 18.04上已预装)运行本地并行作业,但是它无法运行并出现以下错误:

mpirun: pci-common.c:125: hwloc_pci_compare_busids: Assertion `0' failed.

检查pci-common.c的源代码,可以在assert(0)行之前找到注释,指出通常没有任何内容可以到达此点,并且将中止所有调试和非调试构建。尝试通过lstopo(hwloc中的程序)生成系统拓扑图也会失败,并显示类似的错误。

我能够本地编译较新版本的hwloc(与预安装的1.11.9-1相比为2.0.4),发现使用libpciaccess-编译hwloc时,我只能使lstopo生成拓扑图通过预装的标准libpciaccess0开发。使用不同的pciaccess库制作hwloc的摘要输出显示以下结果

Probe / display I/O devices: PCI(linux) LinuxIO GL

Probe / display I/O devices: PCI(pciaccess+linux) LinuxIO GL

,前者使用libpciaccess0进行编译,而后者使用libpciaccess-dev进行编译。再者,后者是唯一能够生成系统拓扑图的工具,而我对openmpi的印象是需要此信息以正确分散系统上的作业。我目前不确定如何对当前的openmpi软件包强制执行这些版本更改,或者不确定是否需要完全从源代码进行编译。是否有可能更简单的方法来解决此问题?

hll008 回答:hwloc + lstopo无法在双CPU机器上为Open-MPI生成拓扑

问题是通过反复试验解决的。首先,通过以下方法从系统中清除openmpi的安装(如果通过apt安装):

sudo apt purge openmpi-bin
sudo apt purge openmpi-common

然后,从https://www.open-mpi.org/software/hwloc/v1.11/下载hwloc 1.11.13(可超声)并解压缩到本地目录。输入hwloc目录,然后在命令行中输入:

./configure
make
sudo make install

完成此操作后,从apt安装libhwloc5,然后安装openmpi:

sudo apt-get install libhwloc5
sudo apt-get install openmpi-bin
sudo apt-get install openmpi-common

Open-MPI现在应该按预期运行,并且您应该能够通过运行'lstopo'生成系统拓扑并通过运行'mpirun'来确保mpi正常运行。

希望这对以后遇到类似问题的人有所帮助!

本文链接:https://www.f2er.com/2775132.html

大家都在问