计算化学公社

标题: Intel OneAPI 2025 编译 VASP 6.4.2 后普通用户无法调用MPI,只有 root 可以运行 [打印本页]

作者
Author:
乐平    时间: 2025-7-23 16:50
标题: Intel OneAPI 2025 编译 VASP 6.4.2 后普通用户无法调用MPI,只有 root 可以运行
本帖最后由 乐平 于 2025-7-23 17:08 编辑

这两天遇到很奇葩的事情。我在自己的小工作站上安装了 Rocky Linux 9.6 (之前是 Ubuntu 系统)

安装完 Intel OneAPI 2025 之后,编译 vasp 6.4.2,编译过程很顺畅。但是…… 测试的时候遇到很奇葩的事情,普通用户无法运行 vasp,会报 MPI 相关的错,只有 root 才能正常运行。

普通用户的报错如下:
  1. (base) [huan@localhost graphite]$ module list
  2. No Modulefiles Currently Loaded.
  3. (base) [huan@localhost graphite]$ module load intel/oneapi/mkl/2025.2 intel/oneapi/mpi/2021.16
  4. Loading intel/oneapi/mkl/2025.2
  5.   Loading requirement: intel/oneapi/tbb/latest intel/oneapi/compiler-rt/latest
  6. (base) [huan@localhost graphite]$ module list
  7. Currently Loaded Modulefiles:
  8. 1) intel/oneapi/tbb/latest   2) intel/oneapi/compiler-rt/latest   3) intel/oneapi/mkl/2025.2   4) intel/oneapi/mpi/2021.16  

  9. Key:
  10. auto-loaded  
  11. (base) [huan@localhost graphite]$ mpirun -np 4 /home/huan/apps/vasp642/bin/vasp_std
  12. Abort(673310095) on node 0 (rank 0 in comm 0): Fatal error in internal_Init: Other MPI error, error stack:
  13. internal_Init(39850).........: MPI_Init(argc=(nil), argv=(nil)) failed
  14. MPII_Init_thread(118)........:
  15. MPID_Init(1719)..............:
  16. MPIDI_OFI_mpi_init_hook(1740):
  17. create_vni_context(2343).....: OFI EP enable failed (ofi_init.c:2343:create_vni_context:Cannot allocate memory)
  18. Abort(673310095) on node 0 (rank 0 in comm 0): Fatal error in internal_Init: Other MPI error, error stack:
  19. internal_Init(39850).........: MPI_Init(argc=(nil), argv=(nil)) failed
  20. MPII_Init_thread(118)........:
  21. MPID_Init(1719)..............:
  22. MPIDI_OFI_mpi_init_hook(1740):
  23. create_vni_context(2343).....: OFI EP enable failed (ofi_init.c:2343:create_vni_context:Cannot allocate memory)
  24. Abort(673310095) on node 0 (rank 0 in comm 0): Fatal error in internal_Init: Other MPI error, error stack:
  25. internal_Init(39850).........: MPI_Init(argc=(nil), argv=(nil)) failed
  26. MPII_Init_thread(118)........:
  27. MPID_Init(1719)..............:
  28. MPIDI_OFI_mpi_init_hook(1740):
  29. create_vni_context(2343).....: OFI EP enable failed (ofi_init.c:2343:create_vni_context:Cannot allocate memory)
  30. Abort(673310095) on node 0 (rank 0 in comm 0): Fatal error in internal_Init: Other MPI error, error stack:
  31. internal_Init(39850).........: MPI_Init(argc=(nil), argv=(nil)) failed
  32. MPII_Init_thread(118)........:
  33. MPID_Init(1719)..............:
  34. MPIDI_OFI_mpi_init_hook(1740):
  35. create_vni_context(2343).....: OFI EP enable failed (ofi_init.c:2343:create_vni_context:Cannot allocate memory)
  36. (base) [huan@localhost graphite]$
复制代码


但是 root 却能正常调用 mpi ,能正常完成计算,如下

  1. (base) [root@localhost graphite]# module list
  2. No Modulefiles Currently Loaded.
  3. (base) [root@localhost graphite]#
  4. (base) [root@localhost graphite]# module load intel/oneapi/mkl/2025.2 intel/oneapi/mpi/2021.16
  5. Loading intel/oneapi/mkl/2025.2
  6.   Loading requirement: intel/oneapi/tbb/latest intel/oneapi/compiler-rt/latest
  7. (base) [root@localhost graphite]#
  8. (base) [root@localhost graphite]# module list
  9. Currently Loaded Modulefiles:
  10. 1) intel/oneapi/tbb/latest   2) intel/oneapi/compiler-rt/latest   3) intel/oneapi/mkl/2025.2   4) intel/oneapi/mpi/2021.16  

  11. Key:
  12. auto-loaded  
  13. (base) [root@localhost graphite]#
  14. (base) [root@localhost graphite]# mpirun -np 4 /home/huan/apps/vasp642/bin/vasp_std
  15. running    4 mpi-ranks, on    1 nodes
  16. distrk:  each k-point on    4 cores,    1 groups
  17. distr:  one band on    1 cores,    4 groups
  18. vasp.6.4.2 20Jul23 (build Jul 23 2025 16:27:58) complex                        
  19.   
  20. POSCAR found type information on POSCAR I
  21. POSCAR found :  1 types and       2 ions
  22. scaLAPACK will be used
  23. LDA part: xc-table for Pade appr. of Perdew
  24. found WAVECAR, reading the header
  25. POSCAR, INCAR and KPOINTS ok, starting setup
  26. FFT: planning ... GRIDC
  27. FFT: planning ... GRID_SOFT
  28. FFT: planning ... GRID
  29. reading WAVECAR
  30. the WAVECAR file was read successfully
  31. initial charge from wavefunction
  32. entering main loop
  33.        N       E                     dE             d eps       ncg     rms          rms(c)
  34. DAV:   1    -0.274277379318E+01   -0.27428E+01   -0.38481E-13  1152   0.599E-06    0.522E-08
  35. DAV:   2    -0.274277379347E+01   -0.28814E-09    0.22757E-14  1136   0.127E-06
  36.    1 F= -.27427738E+01 E0= -.27418118E+01  d E =-.192399E-02
  37. writing wavefunctions
  38. (base) [root@localhost graphite]#
复制代码



我也尝试了在笔记本上用虚拟机来安装 Rocky Linux 9.6,也是用 Intel OneAPI 2025 Base Kit 和 HPC kit 编译器来编译 vasp.6.4.2。神奇的是,在虚拟机上普通用户能正常运行

不知道是什么原因在工作站上会报错……

请教大家,谢谢啦!

作者
Author:
丁越    时间: 2025-7-24 09:08
是不是oneapi目录及其子目录的权限问题啊,看看对others有没有rx权限
作者
Author:
llzz0309    时间: 2025-7-24 10:04
可以尝试加环境变量来解决,export FI_PROVIDER=tcp
作者
Author:
乐平    时间: 2025-7-24 10:04
丁越 发表于 2025-7-24 09:08
是不是oneapi目录及其子目录的权限问题啊,看看对others有没有rx权限

oneapi 目录以及子目录的权限都是 drwxr-xr-x

最后的 vars.sh 文件的权限是 -rw-r--r--

这些跟在集群里也是一致的,与我的小工作站一样。
集群里是可以用普通用户调用 mpirun
我的笔记本里虚拟机也可以用普通用户调用 mpirun
诡异的是,小工作站的普通用户却不能调研 mpirun,真诡异……

作者
Author:
llzz0309    时间: 2025-7-24 10:12
此外,您的graphite文件夹用root用户跑过后,可能产生的文件属于root用户,普通用户再跑计算时,无法完成对root用户文件的覆盖,也会出问题。所以也需要检查下graphite文件夹及其包含的文件所属用户。可以以root用户执行chown  -R  huan:huan  /home/huan来修正文件所属用户为huan的

作者
Author:
乐平    时间: 2025-7-24 10:25
llzz0309 发表于 2025-7-24 10:04
可以尝试加环境变量来解决,export FI_PROVIDER=tcp

非常感谢!
添加 export FI_PROVIDER=tcp 到 ~/.bashrc 之后,可以用普通用户正常运行了。
作者
Author:
乐平    时间: 2025-7-24 10:28
llzz0309 发表于 2025-7-24 10:12
此外,您的graphite文件夹用root用户跑过后,可能产生的文件属于root用户,普通用户再跑计算时,无法完成对 ...

谢谢您的提醒,我运行完之后会删除测试的结果。或者另外复制输入文件再运行测试。

您提到的 export FI_PROVIDER=tcp 是关键,再次感谢!




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3