计算化学公社

 找回密码 Forget password
 注册 Register
Views: 104752|回复 Reply: 74
打印 Print 上一主题 Last thread 下一主题 Next thread

[Quantum ESPRESSO] Quantum ESPRESSO在Linux下的安装方法

  [复制链接 Copy URL]

5万

帖子

99

威望

5万

eV
积分
112353

管理员

公社社长

Quantum ESPRESSO在Linux下的安装方法
Installation method of Quantum ESPRESSO under Linux

文/Sobereva@北京科音
First release: 2020-Jul-10  Last update: 2020-Jul-23


1 前言

Quantum ESPRESSO (QE)是用户非常多、极为流行的第一性原理程序,而且完全开源免费。本文介绍一下QE在Linux下的安装过程。本文对于CentOS 7.x系列系统下安装QE 6.5是完全适合的,对于其它QE版本或其它Linux系统请自行尝试、随机应变。本文使用root账户,对于普通用户请安装到自己有读写权限的目录。本文基于OpenMPI库+MKL库+gfortran/gcc编译器进行编译。编译的是纯CPU版本,不支持GPU加速(GPU加速还需要有PGI Fortran编译器)。如果机子里还没装gcc和gfortran,应先用yum install gcc命令进行安装。

关于编译的更多细节可以看QE的手册https://www.quantum-espresso.org/Doc/user_guide/node10.html

在CentOS下使用yum也可以不通过编译来安装,但有一些弊端,见此文第6节。

2 安装OpenMPI

为了让QE能基于MPI并行计算,需要先装MPI库,一般就用OpenMPI。笔者用的是OpenMPI 4.0.3,经测试与QE 6.5完全兼容。

https://www.open-mpi.org下载最新的OpenMPI包,解压后进入此目录,运行以下命令将之编译并安装到指定目录下。这里笔者安装到了/sob/openmpi目录下。
./configure --prefix=/sob/openmpi
make all install

在~/.bashrc文件中加入以下内容
export PATH=$PATH:/sob/openmpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sob/openmpi/lib

然后重新打开终端,以上设置就生效了。可以运行mpiexec -V,如果正常显示出了OpenMPI的版本,说明已经装好了。之后可以删掉OpenMPI压缩包和解压出的目录。

注:如果机子里之前还有其它MPI库,应当运行which mpiexec来看看是否确实指向的是新装的OpenMPI,如果指向的是其它的,则并行运行可能失败。比如如果你之前在机子里装过Intel编译器的时候顺带装了Intel MPI,则应当在编译QE以及运行QE前将~/.bashrc里的相应配置语句注释掉后重新进入终端,免得被利用的是Intel MPI而非新装的OpenMPI。


3 安装MKL库

为了让QE能利用效率很高的MKL数学库来提升计算速度,应当在编译QE前先把MKL装上。MKL库目前是免费的,CentOS下可以运行以下两行命令安装。期间会下载几百兆的文件,文件会被安装到/opt/intel目录下,占3GB多(对于2020-Jul-10时下载的版本而言)。如果你之前机子里装过Intel编译器,且在装的时候已经选择装了MKL,就不需要再这么装一遍了。

添加intel的源:
yum-config-manager --add-repo https://yum.repos.intel.com/mkl/setup/intel-mkl.repo

下载并安装MKL:
yum install -y intel-mkl


4 编译QE

https://github.com/QEF/q-e/releases下载QE最新版源代码包,比如qe-6.5-ReleasePack.tgz。

解压并进入其中,运行以下命令。这里-enable-openmp使得QE也可以利用OpenMP来并行,如果不打算以OpenMP并行的话就不写这个。
./configure --prefix=/sob/qe65 -enable-openmp
make all install -j
四核机子上经过几分钟编译完毕,可执行文件都被装到了/sob/qe65/bin目录下。解压出的目录和压缩包此时虽然可以删掉,但我建议还是留着解压出的目录,里面有些文件以后还用得着。

注:QE在编译过程默认调用gfortran、gcc和mpif90。如果想改默认的编译器,应对QE目录下的make.inc文件里的编译器设置进行修改,而且在之前编译OpenMPI的时候也用相应的编译器。

在~/.bashrc文件中加入以下内容(如果你用的不是root的话,前两行不用加)
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
export PATH=$PATH:/sob/qe65/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/compilers_and_libraries_2020.2.254/linux/mkl/lib/intel64_lin
这里往LD_LIBRARY_PATH环境变量添加的Intel MKL库的目录名应当与你当前机子里的实际路径一致。

之后重新进入终端,QE的可执行文件就可以在任意目录下直接运行了。

以上述方式编译出来的QE没有包含EPW、PLUMED、Wannier90、WanT、YAMBO、GIPAW程序,如果需要编译的话,看官网上User's Guide for Quantum ESPRESSO文档的2.5节。


5 测试QE

下面对QE最关键的PWscf模块做简单测试。下载http://sobereva.com/attach/562/diamond.zip并解压,此任务是对金刚石做SCF计算。

QE是MPI和OpenMP混合方式并行的程序,实际并行核数是MPI进程数与每个下属的OpenMP线程数的乘积。

先测试纯MPI并行方式运行。进入diamond目录后,运行以下命令,使用4个MPI进程计算,每个MPI进程下属只有一个线程。
export OMP_NUM_THREADS=1
mpirun -n 4 pw.x < pwscf.in |tee pwscf.out
如果任务能正常完成,末尾显示JOB DONE,就说明已经装好了。注:如果不设置OMP_NUM_THREADS环境变量的话,机子有多少核,OpenMP就会用多少个线程。

然后再测试纯OpenMP并行方式运行。运行以下命令,将使用一个MPI进程下属4个OpenMP线程进行计算
export OMP_NUM_THREADS=4
pw.x < pwscf.in |tee pwscf.out

也可以使用QE自带的测试集进行测试。做法是进入QE解压后的目录的test-suite子目录,在里面运行make run-tests-parallel命令,就会在并行运算下对所有任务进行测试,每一项对应的含义见此目录下的README。如果只想测试比如PWscf模块,则运行make run-tests-pw-parallel。


6 在CentOS下使用yum安装QE

下面文字适用于CentOS,使用root的情况。会安装基于OpenMPI并行但不支持OpenMP并行的QE 6.5版。至少对于对于CentOS 7.7和8.0而言,被安装的是QE 6.5版。Ubuntu下也可以用apt-get装,本文就不提了。

运行以下命令:
yum install epel-release
yum install quantum-espresso-openmpi
期间会自动安装OpenMPI、OpenBLAS、ScaLapack等包。如果你是用yum install quantum-espresso,则安装的是只能串行计算的版本,没实际价值。

之后在~/.bashrc文件里加入以下内容:
export PATH=$PATH:/usr/lib64/openmpi/bin/
如果你用的是root的话同时加入
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
之后重新进入终端即可使用。

QE的文件被安装到了/usr/lib64/openmpi/bin/目录下,可执行文件都带着_openmpi后缀。比如可以运行mpirun -n 4 pw.x_openmpi < pwscf.in。

对于计算密集型程序,像QE这种编译不麻烦的话,我鼓励自行编译,因为yum装的CentOS软件源里的预编译版为了兼容性、减少库的依赖,在一些地方可能会打一些折扣,比如没用MKL(对QE提供高质量的BLAS、ScaLapack和FFT)、用的编译选项比较保守,故性能可能逊于自己编译的。而且自己编译的话可以自定义文件产生的位置,虽然yum也可以用--installroot=...选项指定安装在哪,但是有些程序可能不能运行。

另外,QE的文档信息很零散,比如支持的泛函完整列表甚至还得去看源代码包里的func.f90里的注释等等,所以最好有源代码包。之前若自己用源代码包编译过之后还可以直接用make epw、make w90、make gipaw等命令编译安装与QE有关的程序。

评分 Rate

参与人数
Participants 11
eV +48 收起 理由
Reason
吃饭专家王大爷 + 3 谢谢
Adair + 5 赞!
hit_liaols + 5 好物!
shuwuwu + 4 赞!
ChemG + 5 好物!
Penson + 4 自己手动安装可惜,直接Yum的版本算不起来.
昼夏の忧郁 + 5 好物!
thanhtam + 2 赞!
newple + 5 赞!
ggdh + 5 赞!
zsu007 + 5 谢谢分享

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

5万

帖子

99

威望

5万

eV
积分
112353

管理员

公社社长

74#
 楼主 Author| 发表于 Post on 2024-5-30 16:52:47 | 只看该作者 Only view this author
小白一个 发表于 2024-5-30 16:43
社长大人,求救!
我先安装了vasp,按照您的vasp5.4.4极简安装方法装的,(https://www.bilibili.com/vide ...

把.sh脚本文件读明白了自然就知道了
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

5

帖子

0

威望

315

eV
积分
320

Level 3 能力者

73#
发表于 Post on 2024-5-30 16:43:40 | 只看该作者 Only view this author
社长大人,求救!
我先安装了vasp,按照您的vasp5.4.4极简安装方法装的,(https://www.bilibili.com/video/B ... arch-card.all.click
现在我想装QE,但在第二步安装OpenMPI时,原来的Intel MPI不知道该怎样注释掉,因为~/.bashrc里面只有source /opt/intel/parallel_studio_xe_2019/psxevars.sh
没有单独可以注释掉MPI的地方,请问该怎样注释掉原来的Intel MPI呢?

13

帖子

0

威望

67

eV
积分
80

Level 2 能力者

72#
发表于 Post on 2023-10-30 22:00:00 | 只看该作者 Only view this author
tanyazhi 发表于 2020-10-31 14:39
1、按照社长的教程,目前已经成功安装qe6.5,后期准备再试一下qe6.6,root账户和普通账户都可以安装成功 ...

朋友,非常感谢你这篇帖子,我就是编译出来之后一直bin目录下没有可执行文件,就是-j并行编译的问题,现在已经全部编译出来了,非常感谢

13

帖子

0

威望

558

eV
积分
571

Level 4 (黑子)

71#
发表于 Post on 2023-4-28 11:06:06 | 只看该作者 Only view this author
本帖最后由 hdb 于 2023-5-10 16:55 编辑

QE编译血泪史,搞了很久,因为系统配置了很多软件,环境很多又很乱,没做环境隔离,所以想分享几个编译的关键点:

编译环境:centos7系统,gcc(版本>=7), openmpi(4.8.5,别的没试),qe(7.0)- gcc安装:
  1. yum -y install centos-release-scl
  2. yum -y install devtoolset-11
  3. source /opt/rh/devtoolset-11/enable #临时使用即可,防止影响其它软件编译,其他版本同理
  4. gcc -v # 确认下编译器版本是否正确
复制代码

- openmpi安装命令:
  1. wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz
  2. tar -zxvf openmpi-4.1.5.tar.gz
  3. cd openmpi-4.1.5/
  4. yum install -y glibc-headers gcc-c++
  5. ./configure --prefix=/path/to/openmpi-4.1.5 # 注意替换你自己你的路径
  6. make all install
  7. echo "# openmpi" >> $HOME/.bashrc
  8. echo "export OPENMPI_PATH=/path/to/openmpi-4.1.5" >> $HOME/.bashrc # 注意替换你自己你的路径
  9. source $HOME/.bashrc
  10. echo "export PATH=\$PATH:\$OPENMPI_PATH/bin" >> $HOME/.bashrc
  11. echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$OPENMPI_PATH/lib" >> $HOME/.bashrc
  12. source $HOME/.bashrc
复制代码

- 构建临时环境(用处似乎不大,作为补充手段就行):这一步主要是因为编译QE的时候总是使用miniconda的gnu,一直报错,目前还不清楚具体原因,可能是因为conda搭建的虚拟环境优先使用conda的环境,所以想把这个环境暂时删掉,另外配合./configure指定编译器路径,双管齐下,就不信你qe还找不到mpif90的路径
使用了笨但容易理解的办法,echo $PATH或者echo $LD_LIBRARY_PATH,所有注册的路径用冒号(:)分隔开了
把输出的路径复制下,删除掉不需要或有冲突的环境
export PATH=删除后的环境路径
LD_LIBRARY_PATH同理

- QE预编译(root不需要加sudo):
重点1:预编译结束后,请一定检查make.inc的这三个字段,是否是你想用的编译器
MPIF90         = mpif90
F90           = gfortran
CC             = cc
重点2:如果你想更换编译器,请在预编译时指定编译器路径,格式同上,一定要把变量放./configure前面,不然变量不生效
我的预编译命令长这样,仅供参考,注意替换mpi路径:
  1. sudo MPIF90=/path/to/openmpi/bin/mpif90 F90=gfortran CC=cc ./configure -enable-openmp
复制代码

- 编译QE模块(root不需要加sudo):
这一步出问题的话,基本都是预编译的配置的锅,命令如下:
  1. sudo make all -j
复制代码

最后一个建议,计算的时候指定输入文件最好使用-i选项,不要使用<,有的系统会出问题,计算命令如下:
  1. mpirun -np 4 -x OMP_NUM_THREADS=1 pw.x -i pwscf.in | tee pwscf.out
复制代码

参考:
1. https://www.quantum-espresso.org/Doc/user_guide/node11.html
2. http://bbs.keinsci.com/thread-18600-1-1.html





4

帖子

0

威望

344

eV
积分
348

Level 3 能力者

70#
发表于 Post on 2023-3-18 21:30:52 | 只看该作者 Only view this author
霹雳神偷 发表于 2022-11-28 17:34
太好了,看着社长的贴子编好了!在这里要提醒一点,QE-7.1和libxc6.0.0不匹配。会造成编译失败的问题。想用 ...

您好,可以具体描述有一下不匹配的问题吗?我用的也是QE-7.1
Warning: Type mismatch between actual argument at (1) and actual argument at (2) (COMPLEX(8)/REAL(8)).
编译的时候一堆这种warning,不知道是不是你提到的不匹配。
测试的时候基本全error。

353

帖子

1

威望

1971

eV
积分
2344

Level 5 (御坂)

69#
发表于 Post on 2022-11-30 14:04:57 | 只看该作者 Only view this author
hzliew 发表于 2022-11-28 18:47
希望有大佬能贴出完整的GPU版QE的安装步骤

《CentOS下GPU加速版QE的编译安装》论坛首页随便一搜就能找到。

9

帖子

0

威望

462

eV
积分
471

Level 3 能力者

68#
发表于 Post on 2022-11-30 11:53:37 | 只看该作者 Only view this author
本帖最后由 霹雳神偷 于 2022-11-30 12:05 编辑

社长,我费了很大的劲编译成功了,安装也安装好了,但最后测试的时候还是不行。
现在情况是这样的,在root下运行测试文件它直接显示无法在库中找到这个文件,但是事实是mpi路径下是有这一个名字的文件的。

然后我怀疑是.bashrc下root运行mpi没设置好,于是我试了一下非root下运行测试文件。结果还是不行....但是显示变成这样了。



请问应该怎么解决。
我的.bashrc里面这四句话是这样的。

我用的系统是Rocky linux 8.7。






14

帖子

0

威望

27

eV
积分
41

Level 2 能力者

67#
发表于 Post on 2022-11-28 18:47:55 | 只看该作者 Only view this author
希望有大佬能贴出完整的GPU版QE的安装步骤

9

帖子

0

威望

462

eV
积分
471

Level 3 能力者

66#
发表于 Post on 2022-11-28 17:34:35 | 只看该作者 Only view this author
本帖最后由 霹雳神偷 于 2022-11-30 11:53 编辑

太好了,看着社长的贴子编好了!在这里要提醒一点,QE-7.1和libxc6.0.0不匹配。会造成编译失败的问题。想用libxc的小伙伴一定要去下载5.2.2以前的版本的。这个着实把我坑了好久。

14

帖子

0

威望

27

eV
积分
41

Level 2 能力者

65#
发表于 Post on 2022-11-28 17:26:53 | 只看该作者 Only view this author
QE分别Intel MPI和OpenMPI,哪个更快啊

113

帖子

0

威望

1504

eV
积分
1617

Level 5 (御坂)

64#
发表于 Post on 2022-10-30 23:10:47 | 只看该作者 Only view this author
tanyazhi 发表于 2020-10-31 14:39
1、按照社长的教程,目前已经成功安装qe6.5,后期准备再试一下qe6.6,root账户和普通账户都可以安装成功 ...

我也出现上面提到的bin目录是空的问题,感谢分享!
两个对易的厄米算子可以有共同本征函数集

1

帖子

0

威望

21

eV
积分
22

Level 1 能力者

63#
发表于 Post on 2022-4-12 09:38:09 | 只看该作者 Only view this author
本帖最后由 vivixjw 于 2022-4-12 09:47 编辑

社长,您好,按照您的方法安装QE后,在测试提交diamond任务时出现了图中的错误,请问应该怎么解决。 这是我添加的路径

12

帖子

0

威望

49

eV
积分
61

Level 2 能力者

62#
发表于 Post on 2022-2-27 15:57:53 | 只看该作者 Only view this author
大佬,用你的diamond测试的时候出现这种报错怎么解决呢。。。
[proxy:0:0@node01] HYDU_create_process (../../utils/launch/launch.c:588): execvp error on file pw.x (No such file or directory)
[proxy:0:0@node01] HYDU_create_process (../../utils/launch/launch.c:588): execvp error on file pw.x (No such file or directory)
[proxy:0:0@node01] HYDU_create_process (../../utils/launch/launch.c:588): execvp error on file pw.x (No such file or directory)
[proxy:0:0@node01] HYDU_create_process (../../utils/launch/launch.c:588): execvp error on file pw.x (No such file or directory)

104

帖子

0

威望

3049

eV
积分
3153

Level 5 (御坂)

被催的人

61#
发表于 Post on 2021-12-25 11:44:35 | 只看该作者 Only view this author
Freeman 发表于 2021-12-24 22:52
http://bbs.keinsci.com/thread-20166-1-1.html

多谢老师指教!这个很强大!

104

帖子

0

威望

3049

eV
积分
3153

Level 5 (御坂)

被催的人

60#
发表于 Post on 2021-12-25 11:43:51 | 只看该作者 Only view this author

谢谢老师指教!我去试着用一下。

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 17:11 , Processed in 0.220827 second(s), 32 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list