ubuntu 18.04 编译vasp 5.4

前两天给别人编译了一下vasp,由于一开始怀疑他的系统有些问题,所以在更改makefile仍然没有通过编译的情况下,我重装了一个新的系统 Ubuntu 18.04.

然而问题似乎更加糟糕了,桌面版本的1804缺少很多组件,gcc都没有,故而需要安装很多东西。于是:

首先更换国内的源,然后
 

apt-get update

apt-get install gcc g++ gfortran gcc-multilib build-essential vim openssh-server make cmake automake texinfo

大概就是这些了。

然后安装编译器 intel parallel studio xe 2015,这个就不叙述了。假设我们就安装在/opt/intel(注意该目录需要管理员权限,下面操作类似)之下吧。然后使之生效(长期生效就添加到~/.bashrc里)

source /opt/intel/bin/compilervars.sh intel64

然后编译openmpi

wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.3.tar.gz
tar -xvzf openmpi-3.1.3.tar.gz
cd openmpi-3.1.3
./configure --prefix=/opt/openmpi-intel CC=icc CXX=icpc FC=ifort F77=ifort
make -j4
make install

到这里出问题了,错误如下:

/home/user/intel/compilers_and_libraries_2018.2.199/linux/compiler/include/math.h(1230): error: identifier "_LIB_VERSION_TYPE" is undefined
  _LIBIMF_EXTERN_C _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
                   ^

Ubuntu 18.04 与Intel parallel studio 2015 不兼容(事实上 除了2018update4 以及2019 update1 以及其以后的版本,其他的老版本都有这个问题),原因是libc-2.7更改了很多东西glibc 2.27 removed the '_LIB_VERSION_TYPE' enum。

那么解决办法有两个,一是回退到1604去编译安装,我当时就是这么做的;二是安装最新编译器2018update4 或2019 update1 。

回退系统的办法我就不介绍了,我发现安装新的编译器才是最好的解决方案。

我们可以使用Intel parallel studio 2018(update 4) 和2019 (update 1)配合编译vasp。且编译vasp 5.4.1 以及其后版本非常简单,安装好上述两个编译器之后,通过更改环境变量使之生效,然后在vasp解压包内

cp arch/makefile.include.linux_intel makefile.include

make std

即可轻松完成编译。

intel pst 2018 配合vasp 5.4.1需要编译fftw的库,我们可以

cd /opt/intel/mkl/interfaces/fftw3xf

sudo make libem64t F=intel precision=MKL_DOUBLE

然后再行编译vasp。

intel pst 2018 以及2019 都集成了mpi的编译环境和运行环境,无需单独安装mpi库,而且2019还有现成的fftw3xf库,免去编译,所以编译vasp变得十分简单。

xxxxxxxxxxxxxxxxxxxxxxxx---bug---xxxxxxxxxxxxxxxxxxxxxxxxx

Intel 自身的mpi库貌似编译vasp之后运行出错,我们还是单独编译openmpi

wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.3.tar.gz

tar -xvzf openmpi-3.1.3.tar.gz

cd openmpi-3.1.3

./configure --prefix=/opt/openmpi-intel CC=icc CXX=icpc FC=ifort F77=ifort

make -j4

make install

然后环境变量生效

export PATH=/opt/openmpi-intel/bin:${PATH}

export LD_LIBRARY_PATH=/opt/openmpi-intel/lib:${LD_LIBRARY_PATH}

然后在编译vasp时修改makefile.include文件中的mpiifort为mpifort,运行时也只能使用openmpi的mpirun

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值