Ubuntu下BURAI运行SCF计算时Open MPI库依赖问题求助
解决BURAI依赖旧版Open MPI共享库的问题
以下是针对libmpi_mpifh.so.12缺失问题的三种解决思路:
1. 安装旧版Open MPI并指定运行时库路径
- 如果Ubuntu软件仓库仍提供Open MPI 1.10版本,直接通过apt安装:
sudo apt-get install libmpi-dev=1.10.* libmpi_mpifh12 - 若仓库无对应版本,下载Open MPI 1.10源码编译安装:
运行计算前临时设置库加载路径:# 下载并解压源码包 wget https://download.open-mpi.org/release/open-mpi/v1.10/openmpi-1.10.7.tar.gz tar xzf openmpi-1.10.7.tar.gz cd openmpi-1.10.7 # 编译安装到指定目录 ./configure --prefix=/opt/openmpi-1.10 make -j$(nproc) sudo make installexport LD_LIBRARY_PATH=/opt/openmpi-1.10/lib:$LD_LIBRARY_PATH /usr/bin/mpirun -np 4 pw.x -in espresso.in
2. 重新编译BURAI适配当前Open MPI 4.1.2
先安装编译所需依赖:
sudo apt-get install openmpi-default-dev default-jdk maven git
然后克隆源码并编译:
git clone https://github.com/BURAI-team/burai.git cd burai # 执行maven编译 mvn clean install
编译完成后,使用本地构建的BURAI版本运行,会自动适配当前系统的Open MPI库文件。
3. 临时创建符号链接(应急方案)
先定位当前系统中libmpi_mpifh.so.40的位置:
find /usr/lib -name libmpi_mpifh.so.40
假设路径为/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_mpifh.so.40,创建软链接映射到缺失的库名:
sudo ln -s /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_mpifh.so.40 /usr/lib/libmpi_mpifh.so.12
⚠️ 注意:该方法属于临时 workaround,可能导致其他依赖旧版MPI的程序出现兼容性问题,不建议长期使用。
内容的提问来源于stack exchange,提问作者dhruft
相关产品推荐
相关产品推荐

