计算化学公社

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

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

[复制链接 Copy URL]

345

帖子

7

威望

3175

eV
积分
3660

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 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版。
下载,安装
  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 -a -s --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 -a -s --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: 12)

perl-Thread-Queue-3.02-2.el7.noarch.rpm (17.04 KB, 下载次数 Times of downloads: 7)



评分 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

345

帖子

7

威望

3175

eV
积分
3660

Level 5 (御坂)

27#
 楼主 Author| 发表于 Post on 2023-3-6 23:24:00 | 只看该作者 Only view this author
ABQTrap 发表于 2023-3-6 17:23
老师好,bagel安装成功了,test通过,之前是mpi没设置好。现在想再连接libxc进行dft计算,configure时加- ...
The pilot KS-DFT code is also implemented using Libxc,5but it is neither efficient nor of production quality; we are hereby soliciting future collaboration for improving the DFT code.

原文说dft部分还不完善。

评分 Rate

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

查看全部评分 View all ratings

76

帖子

0

威望

2047

eV
积分
2123

Level 5 (御坂)

26#
发表于 Post on 2023-3-6 17:23:07 | 只看该作者 Only view this author
Freeman 发表于 2023-3-5 00:32
8.5.0是编译器的版本,不是c++的标准,所以不用写成-std=c++8。
我没有亲自装过boost,不太了解。安装并 ...

老师好,bagel安装成功了,test通过,之前是mpi没设置好。现在想再连接libxc进行dft计算,configure时加--with-libxc,但总是报错找不到libxc的xc.h,明明已经安装并设置环境变量了,请问是什么原因?谢谢!

345

帖子

7

威望

3175

eV
积分
3660

Level 5 (御坂)

25#
 楼主 Author| 发表于 Post on 2023-3-5 00:32:54 | 只看该作者 Only view this author
ABQTrap 发表于 2023-3-4 18:27
老师再请教一下:如果Linux安装的是c++8.5.0,关键词需要写成-std=c++8吗?
目前bagel安装完成了,安装 ...

8.5.0是编译器的版本,不是c++的标准,所以不用写成-std=c++8。
我没有亲自装过boost,不太了解。安装并行版的molcas必须要装boost,而串行版的molcas不需要,我猜就是因为boost对并行特别重要。所以如果安装boost时有类似use-mpi的选项,应该要勾选,并且编译器最好和编译bagel的一样。
是的。
是的。要并行的话前面加上mpirun -n [并行核数]。
这个报错我也看不懂。你可以自己写几个小分子的输入文件,测试一下。说不定是内存问题呢。

评分 Rate

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

查看全部评分 View all ratings

76

帖子

0

威望

2047

eV
积分
2123

Level 5 (御坂)

24#
发表于 Post on 2023-3-4 18:27:28 | 只看该作者 Only view this author
Freeman 发表于 2023-3-3 15:28
用C++11标准,链接C++标准库

老师再请教一下:如果Linux安装的是c++8.5.0,关键词需要写成-std=c++8吗?
目前bagel安装完成了,安装中没有error,但是运行BAGEL里面的test,总是报错,不知道问题在哪,见图片。linux小白,只装过orca,这个安装太难了。boost版本的确有影响,1.71安装没有报错,更高版本反而报错。
请问:
(1)boost安装时需要加use mpi关键词吗?不加会不会对并行计算有影响?
(2)安装了intel oneAPI 2021版,包括了编译器 mkl mpi部分,是不是相当于安装了intel mpi?
(3)运行bagel:BAGEL /path/to/test/benzene_svp_mp2.json > output &  这样运行方式是否正确?
bagel安装时的configure:./configure --with-mpi=intel --enable-mkl --with-boost=$BOOST_ROOT --prefix=/home/***/bagel-1.2.2 CXXFLAGS="-DNDEBUG -std=c++11 -lstdc++"
万分感谢!感激不尽!

屏幕截图 2023-03-04 181701.png (256.96 KB, 下载次数 Times of downloads: 28)

报错信息

报错信息

345

帖子

7

威望

3175

eV
积分
3660

Level 5 (御坂)

23#
 楼主 Author| 发表于 Post on 2023-3-3 15:28:01 | 只看该作者 Only view this author
ABQTrap 发表于 2023-3-3 14:41
您好!请问您的configure里面”CXXFLAGS="-DNDEBUG -std=c++11 -lstdc++“  -std=c++11 -lstdc++是什么意思 ...

用C++11标准,链接C++标准库

评分 Rate

参与人数
Participants 1
eV +1 收起 理由
Reason
ABQTrap + 1 谢谢!

查看全部评分 View all ratings

76

帖子

0

威望

2047

eV
积分
2123

Level 5 (御坂)

22#
发表于 Post on 2023-3-3 14:41:03 | 只看该作者 Only view this author
您好!请问您的configure里面”CXXFLAGS="-DNDEBUG -std=c++11 -lstdc++“  -std=c++11 -lstdc++是什么意思呢?看不懂,谢谢!

94

帖子

0

威望

551

eV
积分
645

Level 4 (黑子)

21#
发表于 Post on 2023-2-19 21:46:13 | 只看该作者 Only view this author
1.71的boost也找不到Regex,和老师说的有出入,

175

帖子

2

威望

1844

eV
积分
2059

Level 5 (御坂)

20#
发表于 Post on 2022-12-12 18:44:25 | 只看该作者 Only view this author
请问大家make -j时有遇到这样的问题吗:

./.libs/libbagel.so: undefined reference to `bagel::Matrix1e_<bagel::Matrix, void>::operator=(bagel::Matrix1e_<bagel::Matrix, void> const&)'
./.libs/libbagel.so: undefined reference to `bagel::Matrix1e_<bagel::Matrix, void>::operator=(bagel::Matrix1e_<bagel::Matrix, void>&&)'

加了--disable-shared --enable-static没用。

345

帖子

7

威望

3175

eV
积分
3660

Level 5 (御坂)

19#
 楼主 Author| 发表于 Post on 2022-10-14 16:27:35 | 只看该作者 Only view this author
喵星大佬 发表于 2022-10-14 02:55
并不,你看看写的是mpicxx和mpicc,即使是intelmpi也是对应gcc的,如果是intel编译器应该是mpiicc和mpiic ...

抱歉,年代太久远,我已经记不清细节了

1657

帖子

5

威望

4562

eV
积分
6319

Level 6 (一方通行)

喵星人

18#
发表于 Post on 2022-10-14 02:55:33 | 只看该作者 Only view this author
Freeman 发表于 2022-10-13 11:29
我当时用的是intel编译器。

并不,你看看写的是mpicxx和mpicc,即使是intelmpi也是对应gcc的,如果是intel编译器应该是mpiicc和mpiicpc

345

帖子

7

威望

3175

eV
积分
3660

Level 5 (御坂)

17#
 楼主 Author| 发表于 Post on 2022-10-13 11:29:28 | 只看该作者 Only view this author
喵星大佬 发表于 2022-10-11 16:48
gcc11似乎编译不过去了

我当时用的是intel编译器。

1657

帖子

5

威望

4562

eV
积分
6319

Level 6 (一方通行)

喵星人

16#
发表于 Post on 2022-10-11 16:48:56 | 只看该作者 Only view this author
gcc11似乎编译不过去了

220

帖子

0

威望

6004

eV
积分
6224

Level 6 (一方通行)

跳跳猪

15#
发表于 Post on 2022-2-8 08:11:02 | 只看该作者 Only view this author
hebrewsnabla 发表于 2022-2-7 22:53
虽然他们做了商业版本,但是开源的BAGEL二十几天前还在更新吧?

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

345

帖子

7

威望

3175

eV
积分
3660

Level 5 (御坂)

14#
 楼主 Author| 发表于 Post on 2022-2-8 00:48:42 | 只看该作者 Only view this author
hebrewsnabla 发表于 2022-2-7 22:53
虽然他们做了商业版本,但是开源的BAGEL二十几天前还在更新吧?

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

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

GMT+8, 2025-8-17 03:58 , Processed in 0.238260 second(s), 25 queries , Gzip On.

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