quantumespresso在linux下的安装方法 | 宜武汇-ag真人国际厅网站

quantum espresso在linux中的安装方法

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命令进行安装。

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

2 安装openmpi

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

去下载最新的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

解压并进入其中,运行以下命令。这里-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程序,如果需要编译的话,看ag真人国际厅网站官网上user’s guide for quantum espresso文档的2.5节。

5 测试qe

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有关的程序。

原文链接:http://sobereva.com/562

网络摘文,本文作者:15h,如若转载,请注明出处:https://www.15cov.cn/2023/08/27/quantumespresso在linux下的安装方法/

发表评论

邮箱地址不会被公开。 必填项已用*标注

网站地图