Windows子系统linux(wsl)环境下配置安装Openmpi及相应并行版Quantum Espresso

写在前面

本篇教程特别适用于想自学第一性原理计算,在自己PC机上练习相关编程,但对安装双系统和虚拟机感到麻烦的同学。

比起VASP,Quantum Espresso 是开源的,下载更方便,同样需要linux环境。QE 6.5的用户手册里说可以在Windows子系统linux下流畅运行,但事实上从下载,配置,编译到安装,有一些对小白来说非常棘手的问题。

有关wsl的安装配置,教程很多,非常简单,此处不再赘述,但安装之后务必更换镜像源,以及安装make工具:apt-get install make,其他配置可以根据需求自行设置。顺便一提,创建用户和密码时输入的内容不会显示在屏幕上,给人感觉键盘失灵,但其实已经都输进去了。

有关我的版本信息:

  • 已安装:
    • win10家庭版
    • Ubuntu 18.04 LTS子系统
  • 本教程将指导安装:
    • gcc-5, g++-5, fortran-5
    • Openmpi-4.0.3
    • Quantum Espresso-6.5

编译器安装

编译Openmpi和QE需要编译C,C++,和FORTRAN,可选的主流编译器有两套。一套是GNU的,也是我采取的;另一套是intel的(icc、icpc和ifort),如果用intel芯片的话计算会更快,需到官网注册,有学校邮箱过几天会收到免费序列号。后一种我没有尝试,想尝试可以参考Quantum Espresso安装

我装的WSL版本预装的gcc,g++,gfortran的版本是7。但是QE6.5与7不兼容,所以需要额外下载三种编译器的版本5。建议日常文件操作在WSL的root账户下操作,跑程序的时候再到某一其他账户中(以保护系统),这样省去了很多sudo的操作(本文以下均不含sudo)。以gcc为例,下载命令:

apt-get install gcc-5

g++,gfortran同理。下载好后系统会同时存在两个版本的编译器,就存在调用优先级的问题。系统调用时的选择存在两种模式:自动和手动模式。自动模式(默认)下系统根据编译器的“优先值”大小自动分配;手动模式若设置则覆盖自动模式。以gcc为例,首先设置两种版本的优先值:

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60

40,60即为优先值,越大越默认优先。此处将7设为默认优先,再手动调整本安装中要采用的编译器:

update-alternatives --config gcc

g++,gfortran同理。

安装Openmpi

Openmpi是用于并行计算的一个软件包,可以给QE提供一个并行环境(含有一系列并行程序的编译器)。这个不安装也可以,则之后安装QE会成为单核版本,且在用QE自带的example检验QE安装情况时会出问题,因为QE的example程序默认是并行版本。所以此处建议安装。

官网下载tar.gz或者其他格式的压缩包,下载后在bash中拷贝到/home下的用户文件夹中,方便权限管理。拷贝后解压,命令形如:

tar zxvf openmpi-4.0.3.tar.gz

解压后进入解压文件夹,依次执行以下命令:

./configure
make
make install

每条命令执行时间都较长,执行完一个要观察是否有报错,无误之后再执行下一个。如果执行configure有报错,调整后重新执行即可;如果make报错中断,则需要执行命令make clean之后再重新make;如果make install报错,则需先执行make uninstall再重新搞。根据个人粗浅的理解,这三条命令的大致原理是:configure文件会检验你是否拥有编译及安装所需的东西,以及检查你的环境之类,类似于图形界面的“安装向导”;make命令会根据Makefile文件编译源码;make install是安装。

安装完后,需要在~/.bashrc中添加环境变量,注意在bash语法中等号与变量名间不能有空格

PATH=“/usr/local/openmpi/bin:$PATH”
LD_LIBRAY_PATH=”/usr/local/openmpi/lib:$LD_LIBRAY_PATH”

然后更新动态链接库,执行:ldconfig

最后检验是否安装成功。我检验的方法是查看一些主要工具(如mpirun,mpicc,mpicxx,mpif90)的版本,如:mpirun --version

安装Quantum Espresso

与Openmpi类似,从官网下压缩包然后解压至/home。进入后依次运行:

./configure
make all

configure运行完之后注意检查是否检测到并行环境(末尾处会有提示Parallel environment detected successfully)。make all时间较长,约十几二十分钟。

之后就是检验环节。QE的user_guide里面说的检验方法(在test_suite里面make run-tests)在我这里行不通,查看报错会发现是因为下载赝势失败(应该是网络或者墙的原因)。所以我的检验方法是进入不同包的examples文件夹(如PW,PP),跑一个example。注意先读examples文件夹里的README,里面详细地写了跑example之前需要做的事情,主要是在environment_variable中设置一些变量(有的已经在装的时候自动设置好了),非常易懂。

除此之外,一定不能在root用户下跑example,一旦出错对系统非常危险,要切换至低权限用户操作。还需要做一件事,Openmpi似乎有一些安全设置与QE不兼容,需要改一个变量的默认值。执行以下命令之一(三条等价):

echo 0 > /proc/sys/kernel/yama/ptrace_scope
sudo echo 0 > /proc/sys/kernel/yama/ptrace_scope
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

即可不影响Openmpi的运行。详情可见OpenMPI security paranoia about ptrace

运行成功后会产生results文件夹,需要手动与reference中标准结果对比。

祝各位安装顺利。

原创文章 1 获赞 1 访问量 168

猜你喜欢

转载自blog.csdn.net/qq_41999634/article/details/105887980