|
本帖最后由 Freeman 于 2023-3-13 17:37 编辑
BAGEL是一款很有意思的量子化学计算软件,由Toru Shiozaki团队主导开发,特色是CASPT2和相对论CASSCF的解析梯度。经过测试,BAGEL在CASPT2上能处理的非冻结轨道数多于蓝拱门的32个,而且算速极快,比蓝拱门不知高到哪里去了。这样碉堡的软件居然还是免费的!详见官网https://nubakery.org/和github主页https://github.com/qsimulate-open/bagel。
下面介绍一下怎么安装。
配置
Red Hat 4.8.5-39,Intel(R) Xeon(R) Gold 5217 CPU @ 3.00GHz,Intel全家桶2021.4。
安装Intel全家桶
Intel全家桶不能用有bug的2019版本,最好用最新的,本文用的是2021版。
下载,安装
- wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18236/l_BaseKit_p_2021.4.0.3422_offline.sh
- sh l_BaseKit_p_2021.4.0.3422_offline.sh -a -s --install-dir [Intel安装路径] --eula accept
- wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18211/l_HPCKit_p_2021.4.0.3347_offline.sh
- sh l_HPCKit_p_2021.4.0.3347_offline.sh -a -s --install-dir [Intel安装路径] --eula accept
复制代码 自动设置环境变量
检查一下现在所用的编译器和MPI是不是[Intel安装路径]下的,MKL路径是否正常
- which mpicc
- which mpicxx
- which mpirun
- echo $MKLROOT
复制代码
安装Boost库
见http://c.biancheng.net/view/7772.html。注意不能用1.77版,否则在BAGEL的configure过程中会报“找不到Regex”的错。笔者用的是1.71。
安装好之后,加入环境变量。
- export BOOST_ROOT=[Boost安装路径]
- export PATH=$BOOST_ROOT/bin:$PATH
- export LD_LIBRARY_PATH=$BOOST_ROOT/lib:$LD_LIBRARY_PATH
复制代码
安装BAGEL
创建文件夹bagel_beta,作为后续的安装路径
从github主页上下载BAGEL源码,而不要下载v1.2.2版的release,因为后者有奇怪的bug
- git clone https://github.com/nubakery/bagel.git
- cd bagel
复制代码 Automake
- glibtoolize (or, libtoolize)
- aclocal
- autoconf
- autoheader
- automake -a
复制代码 最后的automake -a可能会报“找不到patch”的错,很简单,有root的话就yum -y install patch;没有的话就下载下面这个patch,并把含有patch的路径加入环境变量PATH即可。
这里可能还有一个关于“Perl Thread::Queue”的报错,解决方法也分为两个,有root的话用yum就行;没有的话就下载下面的rpm包,然后按照https://blog.csdn.net/GreenHandCGL/article/details/83055151介绍的方法前三步解压,再把解压出来的文件夹添加进环境变量
- export PERLLIB=$PERLLIB:[包含Thread文件夹的路径]
复制代码 编译BAGEL
- mkdir obj
- cd obj
- MPICC=mpicc MPICXX=mpicxx CC=mpicc CXX=mpicxx ../configure CXXFLAGS="-DNDEBUG -std=c++11 -lstdc++" --enable-mkl --with-boost=$BOOST_ROOT --with-mpi=intel --prefix=[刚才创建的bagel_beta文件夹]
- make -j
- make install
复制代码 添加环境变量
- export PATH=[刚才创建的bagel_beta文件夹]/bin:$PATH
- export LD_LIBRARY_PATH=[刚才创建的bagel_beta文件夹]/lib:$LD_LIBRARY_PATH
复制代码
使用BAGEL
以上环境变量在BAGEL运行过程中仍然需要,所以最好把设置环境变量的步骤和运行BAGEL的步骤写在一个脚本里
- . [Intel安装路径]/setvars.sh
- export BOOST_ROOT=[Boost安装路径]
- export PATH=$BOOST_ROOT/bin:$PATH
- export LD_LIBRARY_PATH=$BOOST_ROOT/lib:$LD_LIBRARY_PATH
- export PATH=[patch安装路径]:$PATH (取决于安装时是否设置了这个环境变量)
- export PERLLIB=$PERLLIB:[包含Thread文件夹的路径] (取决于安装时是否设置了这个环境变量)
- export PATH=[刚才创建的bagel_beta文件夹]/bin:$PATH
- export LD_LIBRARY_PATH=[刚才创建的bagel_beta文件夹]/lib:$LD_LIBRARY_PATH
- mpirun -np 16 BAGEL $input_file > $output_file
复制代码 用官网上随便一个例子测试一下吧!
下期预告
BAGEL虽然能算CASPT2的解析梯度,但是其优化算法太拉跨了,使得几何结构总是在平衡位置左右横跳,在收敛限外蹭蹭就是不进去。为此我写了个Gaussian external的脚本,用Gaussian来优化,效率就提高了很多。这个脚本我稍后再发出来。http://bbs.keinsci.com/thread-27086-1-1.html#pid183460
patch
(178.37 KB, 下载次数 Times of downloads: 12)
perl-Thread-Queue-3.02-2.el7.noarch.rpm
(17.04 KB, 下载次数 Times of downloads: 7)
|
评分 Rate
-
查看全部评分 View all ratings
|