NWChem 6.6编译方法

NWChem 6.6编译方法

文/Sobereva
First release:2014-Dec-22   Last update:2017-Apr-13


本文有两部分,第一部分是NWChem 6.6在Redhat Enterprise 6 Update 1 64bit下的安装,第二部分是NWChem 6.6在CentOS 7.2 64bit下的安装。后者过程更简单。编译器用的gfortran,用ifort也可以,但实测编译出的nwchem运行速度并不会更快,而且在编译耗时长得多,特别是CCSDTQ部分耗时极长,10个小时都编译不完。

编译条件:root, bash。将安装到/sob/nwchem-6.6。

===== NWChem 6.6 + Redhat Enterprise 6 Update 1 64bit ======

编译openmpi:
去http://www.open-mpi.org下载OpenMPI 1.6.5(更新的版本大抵也可以,笔者没测试),解压到/sob目录下,进入其目录,运行
./configure prefix=/sob/openmpi165
make all install -j
此时openmpi的可执行文件、库文件、头文件等就被装到了/sob/openmpi165里面的对应目录下。然后可以把OpenMPI解压的目录删掉。

在~/.bashrc中加入
export PATH=$PATH:/sob/openmpi165/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sob/openmpi165/lib
输入bash使环境变量生效。

运行以下命令设置环境变量
export NWCHEM_TOP=/sob/nwchem-6.6
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES=all
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export USE_INTERNALBLAS=y
export MPI_LOC=/sob/openmpi165
export MPI_LIB=/sob/openmpi165/lib
export MPI_INCLUDE=/sob/openmpi165/include
export LIBMPI="-lmpi_f90 -lmpi_f77 -lmpi -ldl -Wl,--export-dynamic -lnsl -lutil"

NWChem为了节约编译时间,许多不常用的模块默认是不编译的。如果你想编译它们,使用以下命令定义额外的环境变量,需要哪些就执行哪些
export MRCC_METHODS=y:编译多参考耦合簇代码
export CCSDTQ=y:编译TCE模块的CCSDTQ和EOM-CCSDTQ代码
export CCSDTLR=y:编译TCE模块的线性响应CCSDT、CCSDTQ代码,用于解析地算静态/动态极化率
export IPCCSD=y:编译TCE模块的IP-EOM-CCSD代码用于算电离能
export EACCSD=y:编译TCE模块的EA-EOM-CCSD代码用于算电子亲和能

把nwchem6.6压缩包解压到/sob/nwchem-6.6,运行
cd /sob/nwchem-6.6/src
make nwchem_config
make
可执行文件生成在了/sob/nwchem-6.6/bin/LINUX64目录下。把下面的语句加入到~/.bashrc的末尾:
export PATH=$PATH:/sob/nwchem-6.6/bin/LINUX64

笔者在Intel i7-2630QM四核机子上花一刻钟编译完毕。如果把上述全部额外的功能都编译的话,耗时约一个小时。make时不需要写-j,而且写不写都会自动用双线程编译。

现在测试。将以下内容写进test.nw:
title "Nitrogen cc-pvtz SCF geometry optimization"
geometry
n 0 0 0
n 0 0 1.08
end
basis
n library cc-pvtz
end
task scf optimize

然后运行nwchem test.nw查看输出是否正常。也运行mpirun -np 4 nwchem test.nw查看并行执行的输出是否正常。-np后面是调用的核数。


===== NWChem 6.6 + CentOS 7.2 64bit ======

运行以下命令添加EPEL源和安装openMPI(机子需要能联外网)
yum install epel-release
yum install openmpi-devel openmpi

将以下内容复制到命令行窗口设置环境变量
export NWCHEM_TOP=/sob/nwchem-6.6
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES=all
export USE_MPI=y
export USE_INTERNALBLAS=y
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib/
export PATH=$PATH:/usr/lib64/openmpi/bin/
若要编译NWChem额外的功能,需要额外设定的环境变量和上文提到的一致。

把nwchem6.6压缩包解压到/sob/nwchem-6.6,运行
cd /sob/nwchem-6.6/src
make nwchem_config
make
可执行文件生成在了/sob/nwchem-6.6/bin/LINUX64目录下。

把下面的语句加入到~/.bashrc的末尾:
export PATH=$PATH:/sob/nwchem-6.6/bin/LINUX64:/usr/lib64/openmpi/bin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib/
alias mpirun='mpirun --allow-run-as-root'

重新进入终端后就可以用比如mpirun -np 4 nwchem test.nw运行了。

评论已关闭