首页 > 解决方案 > 如何使用 mpiexec 避免 libpciaccess 初始化错误

问题描述

mpiexec 在 FreeBSD 上使用 mpich-3.4.1 或 openmpi-4.4.1 会导致以下错误。

PCI: Failed to initialize libpciaccess with pci_system_init(): 6 (Permission denied)

下面的测试程序

#include <fcntl.h>
#include <stdio.h>
#include <errno.h>

int main(void) {
  int pcidev = open( "/dev/pci", O_RDWR | O_CLOEXEC );
  printf("pcidev=%d\n", pcidev);
  return 0;
}

确实在没有管理员权限的情况下失败。

% ./a.out
pcidev=-1
% sudo ./a.out
Password:
pcidev=3

这个错误并不严重,但如果我们能摆脱它会很好。

标签: mpifreebsd

解决方案


推荐阅读