OpenMX linux安装(Ubuntu+intel oneapi+openmpi)

先说环境

Ubuntu系统,装了intel oneapi 2023.2,但是自带的mpi编译器能编译运行总有问题,所以用的openmpi 5.0.0
如何安装和使用intel mpi完成OpenMX编译可参考官网https://www.openmx-square.org/Installation_OpenMX_WSL_EN.pdf

#在天河星逸集群可选择直接加载模块
module load intel/oneapi2023.2_noimpi
module load mpi/openmpi/5.0.0-icc-oneapi2023.2-ch4
#自己安装时, 
#1、 需要将${openmpi_install_path}/lib写入$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${openmpi_install_path}/lib:$LD_LIBRARY_PATH

安装

下载

wget https://www.openmx-square.org/openmx3.9.tar.gz
tar zxvf openmx3.9.tar.gz 
cd openmx3.9/source
wget https://www.openmx-square.org/bugfixed/21Oct17/patch3.9.9.tar.gz
tar zxvf patch3.9.9.tar.gz
mv kpoint.in ../work/

修改makefile

根据https://www.openmx-square.org/tech_notes/OpenMX-Compile.pdf,其实主要就是要fftw, blas,scalapack,lapack这些库,首先在·oneapi安装路径/mkl/MKL版本号/lib/intel64·找到mkl需要的libmkl_scalapack_lp64, libmkl_intel_lp64, libmkl_intel_thread, libmkl_core, libmkl_blacs_openmpi-lp64, libmkl_lapack95_lp64这些库,然后通过-L写明MKL lib路径。
在openmpi安装路径/lib找到libmpi, libmpi_mpifh, libmpi_usempi_ignore_tkr, libmpi_usempif08;然后通过-L写明openmpi lib路径。

#vi makefile
MKLROOT = ${oneapi_install_path}/mkl/2023.2.0
FFTROOT = ${oneapi_install_path}/mkl/2023.2.0/include/fftw
LBSROOT = ${oneapi_install_path}/mkl/2023.2.0/lib/intel64
CC = mpicc -O3 -xHOST -ip -no-prec-div -qopenmp -I${MKLROOT}/include/fftw -I${MKLROOT}/include
FC = mpif90 -O3 -xHOST -ip -no-prec-div -qopenmp -I${MKLROOT}/include
LIB= -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_openmpi_lp64 -lmkl_lapack95_lp64 -L${oneapi_install_path}/lib -lmpi -lmpi_mpifh -lmpi_usempi_ignore_tkr -lmpi_usempif08  -lifcore -liomp5 -lpthread -lm -ldl

make

make clean
make all -j 4 
make install

报错处理

找不到*.o文件


可能原因

mpicc换成mpiicc, mpipgcc;mpif90换成mpiifort, mpifc77, mpipgf77, mpipgf90

找不到MPI Fortran库

报错信息出现undefined reference to “mpi_XXXXX”

可能原因

LIB = ... -lmpi_f77 -lmpi_f90 -lifcore

找不到OpenMP库

报错信息出现undefined reference to “__kmpc_XXXXX”

在这里插入图片描述

可能原因

LIB = ... -liomp5 -lpthread

找不到MKL库

报错信息出现ld: cannot find -lmkl_XXXX

LIB = ... -L/$MKLROOT/lib/intel64 -Wl, -rpath=/$MKLROOT/lib/intel64 -lmkl_XXX
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值