计算化学公社

 找回密码 Forget password
 注册 Register
Views: 4440|回复 Reply: 19

[其它量化程序] 【BAGEL使用心得】量子化学软件BAGEL的安装

[复制链接 Copy URL]

197

帖子

5

威望

1689

eV
积分
1986

Level 5 (御坂)

发表于 Post on 2021-12-19 23:52:53 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 Freeman 于 2021-12-23 19:50 编辑

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版。
下载,安装
  1. wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18236/l_BaseKit_p_2021.4.0.3422_offline.sh
  2. sh l_BaseKit_p_2021.4.0.3422_offline.sh -s -a --install-dir [Intel安装路径] --eula accept
  3. wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18211/l_HPCKit_p_2021.4.0.3347_offline.sh
  4. sh l_HPCKit_p_2021.4.0.3347_offline.sh -s -a --install-dir [Intel安装路径] --eula accept
复制代码
自动设置环境变量
  1. . [Intel安装路径]/setvars.sh
复制代码
检查一下现在所用的编译器和MPI是不是[Intel安装路径]下的,MKL路径是否正常
  1. which mpicc
  2. which mpicxx
  3. which mpirun
  4. echo $MKLROOT
复制代码

安装Boost库
http://c.biancheng.net/view/7772.html。注意不能用1.77版,否则在BAGEL的configure过程中会报“找不到Regex”的错。笔者用的是1.71。
安装好之后,加入环境变量。
  1. export BOOST_ROOT=[Boost安装路径]
  2. export PATH=$BOOST_ROOT/bin:$PATH
  3. export LD_LIBRARY_PATH=$BOOST_ROOT/lib:$LD_LIBRARY_PATH
复制代码

安装BAGEL
创建文件夹bagel_beta,作为后续的安装路径
  1. mkdir bagel_beta
复制代码
从github主页上下载BAGEL源码,而不要下载v1.2.2版的release,因为后者有奇怪的bug
  1. git clone https://github.com/nubakery/bagel.git
  2. cd bagel
复制代码
Automake
  1. glibtoolize (or, libtoolize)
  2. aclocal
  3. autoconf
  4. autoheader
  5. 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介绍的方法前三步解压,再把解压出来的文件夹添加进环境变量
  1. export PERLLIB=$PERLLIB:[包含Thread文件夹的路径]
复制代码
编译BAGEL
  1. mkdir obj
  2. cd obj
  3. 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文件夹]
  4. make -j
  5. make install
复制代码
添加环境变量
  1. export PATH=[刚才创建的bagel_beta文件夹]/bin:$PATH
  2. export LD_LIBRARY_PATH=[刚才创建的bagel_beta文件夹]/lib:$LD_LIBRARY_PATH
复制代码

使用BAGEL
以上环境变量在BAGEL运行过程中仍然需要,所以最好把设置环境变量的步骤和运行BAGEL的步骤写在一个脚本里
  1. . [Intel安装路径]/setvars.sh
  2. export BOOST_ROOT=[Boost安装路径]
  3. export PATH=$BOOST_ROOT/bin:$PATH
  4. export LD_LIBRARY_PATH=$BOOST_ROOT/lib:$LD_LIBRARY_PATH
  5. export PATH=[patch安装路径]:$PATH (取决于安装时是否设置了这个环境变量)
  6. export PERLLIB=$PERLLIB:[包含Thread文件夹的路径] (取决于安装时是否设置了这个环境变量)
  7. export PATH=[刚才创建的bagel_beta文件夹]/bin:$PATH
  8. export LD_LIBRARY_PATH=[刚才创建的bagel_beta文件夹]/lib:$LD_LIBRARY_PATH
  9. 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: 4)

评分 Rate

参与人数
Participants 10
威望 +1 eV +45 收起 理由
Reason
zsu007 + 5
ggdh + 5
greatzdk + 5 谢谢
biogon + 5 GJ!
wzkchem5 + 5
wxhwbh + 5 好物!
sobereva + 1
ChrisZheng + 5 蹭蹭不进去 23333333
zjxitcc + 5 赞!
hdhxx123 + 5 好物!

查看全部评分 View all ratings

632

帖子

2

威望

3488

eV
积分
4160

Level 6 (一方通行)

发表于 Post on 2021-12-20 11:27:57 | 显示全部楼层 Show all
可以贴出来两者速度对比结果

197

帖子

5

威望

1689

eV
积分
1986

Level 5 (御坂)

 楼主 Author| 发表于 Post on 2021-12-20 12:18:21 | 显示全部楼层 Show all
jiangning198511 发表于 2021-12-20 11:27
可以贴出来两者速度对比结果

恩。趁我还有蓝拱门的试用版权,我有时间测评一下。

1464

帖子

1

威望

2599

eV
积分
4083

Level 6 (一方通行)

喵星人

发表于 Post on 2021-12-21 06:29:44 | 显示全部楼层 Show all
boost177似乎没法用全家桶编译,会报不支持c11,用157也是ok的

328

帖子

0

威望

3405

eV
积分
3733

Level 5 (御坂)

发表于 Post on 2021-12-21 08:52:45 | 显示全部楼层 Show all
的确是,优化稳定构型可能还可以,优化交叉点尤其费劲,上次在交叉点附近调来调去一个多星期才收敛,

197

帖子

5

威望

1689

eV
积分
1986

Level 5 (御坂)

 楼主 Author| 发表于 Post on 2021-12-21 15:33:44 | 显示全部楼层 Show all
pwzhou 发表于 2021-12-21 08:52
的确是,优化稳定构型可能还可以,优化交叉点尤其费劲,上次在交叉点附近调来调去一个多星期才收敛,

我还专门上github的issue区问了,结果发现开发者自己都不用bagel内置的优化器,用的是pyscf同款geometric。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
hebrewsnabla + 3

查看全部评分 View all ratings

58

帖子

0

威望

1372

eV
积分
1430

Level 4 (黑子)

发表于 Post on 2021-12-21 23:25:32 | 显示全部楼层 Show all
本帖最后由 joeson 于 2021-12-21 23:33 编辑

总算有一个免费做多参考的,竟然支持FCI。感谢分享!

6698

帖子

0

威望

4014

eV
积分
10712

Level 6 (一方通行)

发表于 Post on 2021-12-21 23:58:07 | 显示全部楼层 Show all
joeson 发表于 2021-12-21 16:25
总算有一个免费做多参考的,竟然支持FCI。感谢分享!

ORCA也是免费的,做多参考态计算也不错,和BAGEL比主要是差在多参考态方法的解析梯度上面。
另外补充一句,BAGEL还有一个重要的应用是算CASPT2的一阶非绝热耦合矩阵元,可以用来结合MOMAP算内转换速率常数
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员

1464

帖子

1

威望

2599

eV
积分
4083

Level 6 (一方通行)

喵星人

发表于 Post on 2021-12-22 14:07:56 | 显示全部楼层 Show all
Freeman 发表于 2021-12-20 12:18
恩。趁我还有蓝拱门的试用版权,我有时间测评一下。

并行效率这个事情其实还要注意一下不是所有功能都能mpi并行的,很多功能只能MKL并行

197

帖子

5

威望

1689

eV
积分
1986

Level 5 (御坂)

 楼主 Author| 发表于 Post on 2021-12-23 19:49:56 | 显示全部楼层 Show all
更新一下。
1、测试发现,“1-16核的并行效率似乎约为100%”的表述欠妥,现已删去;(当时可能太激动了,没把握好时间)
2、修改了安装Intel全家桶的命令,加上了“-s”,意为静默安装,否则安装包就会在命令行调出伪图形用户界面,个人感觉十分难用;
3、文末添加了《【BAGEL使用心得】Gaussian、BAGEL联用做CASPT2几何优化的脚本》的链接。

2613

帖子

1

威望

5820

eV
积分
8453

Level 6 (一方通行)

MOKIT开发者

发表于 Post on 2022-1-30 23:05:55 | 显示全部楼层 Show all
joeson 发表于 2021-12-21 23:25
总算有一个免费做多参考的,竟然支持FCI。感谢分享!

免费做多参考、还支持Full CI的程序巨多,例如PySCF, ORCA, OpenMolcas, GAMESS, Dalton, PSI4, Bagel, ...

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
卡开发发 + 2 不推荐一波AMESP?

查看全部评分 View all ratings

自动做多参考态计算的程序MOKIT

214

帖子

0

威望

4840

eV
积分
5054

Level 6 (一方通行)

跳跳猪

发表于 Post on 2022-2-7 09:21:51 | 显示全部楼层 Show all
BAGEL已经不更新了,Toru做商业化了,貌似还挺成功
https://qsimulate.com/
流年似水,浮生如梦。

604

帖子

1

威望

4901

eV
积分
5525

Level 6 (一方通行)

发表于 Post on 2022-2-7 22:53:33 | 显示全部楼层 Show all
Mikasa 发表于 2022-2-7 09:21
BAGEL已经不更新了,Toru做商业化了,貌似还挺成功
https://qsimulate.com/

虽然他们做了商业版本,但是开源的BAGEL二十几天前还在更新吧?

197

帖子

5

威望

1689

eV
积分
1986

Level 5 (御坂)

 楼主 Author| 发表于 Post on 2022-2-8 00:48:42 | 显示全部楼层 Show all
hebrewsnabla 发表于 2022-2-7 22:53
虽然他们做了商业版本,但是开源的BAGEL二十几天前还在更新吧?

就是在修bug而已,貌似没有大的作为。源码里面还有dmrg等官网没提及的方法,但是早就停止更新了,也似乎没有给用户调用的接口。也许想憋个大招留给商业版?

214

帖子

0

威望

4840

eV
积分
5054

Level 6 (一方通行)

跳跳猪

发表于 Post on 2022-2-8 08:11:02 | 显示全部楼层 Show all
hebrewsnabla 发表于 2022-2-7 22:53
虽然他们做了商业版本,但是开源的BAGEL二十几天前还在更新吧?

只是修简单的bug,issue里的讨论能看出来商业版的已经再改进更新了
流年似水,浮生如梦。

本版积分规则 Credits rule

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

GMT+8, 2023-2-7 04:15 , Processed in 0.703502 second(s), 25 queries .

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