|
|
本帖最后由 TaylorWu 于 2021-2-2 12:14 编辑
Grimme的xTB软件应该来说还是很有潜力的一款针对大孤立体系(比方说蛋白质或者大团簇)的计算软件,这点社长的博文也提到了(http://sobereva.com/214)。许多使用过该软件的前辈表示xTB并行效率不算太好,超过12核心以上就不太能提升效率了,而我自己在计算的时候又遇到了由于体系比较大(指轨道数太多)导致服务器爆内存的情况。
xTB官方的手册中也提到了核心数越多,内存占用会越多的情况:
Note that the memory requirement will increase with the system size and the number of requested threads. Currently, for 3000 atom system each thread requires around 16GB of memory due to the usage of dense matrix algebra for the xTB Hamiltonian.
为此,我针对一个3160原子(其中非氢原子约1500)的已经在GFN2下优化过的蛋白质进行了不同核心数下的单点能计算,看看内存占用情况和并行效率。
我用于测试的机器是17年买的E5服务器,双路各22核心,主频2.2GHz,内存共256GB(频率和几通道未知)计算设置和体系参数如下:
...................................................
: SETUP :
:.................................................:
: # basis functions 7984 :
: # atomic orbitals 7973 :
: # shells 4757 :
: # electrons 8804 :
: max. iterations 250 :
: Hamiltonian GFN2-xTB :
: restarted? false :
: GBSA solvation true :
: PC potential false :
: electronic temp. 300.0000000 K :
: accuracy 1.0000000 :
: -> integral cutoff 0.2500000E+02 :
: -> integral neglect 0.1000000E-07 :
: -> SCF convergence 0.1000000E-05 Eh :
: -> wf. convergence 0.1000000E-03 e :
: Broyden damping 0.4000000 :
...................................................废话不多说,直接上结果:
| core | MaxMem% | SCFStep | total time | total time(s) | total speed | SCF time | C/W rate total | C/W rate SCF | 4 | 12.90% | 15 | 17m3s | 1023 | 0.00097752 | 16m30s | 3.456 | 3.488 | 6 | 16.80% | 15 | 12m20s | 740 | 0.00135135 | 11m52s | 4.976 | 5.053 | 8 | 20.80% | 15 | 10m17s | 617 | 0.00162075 | 9m51s | 6.474 | 6.604 | 10 | 24.80% | 15 | 8m52s | 532 | 0.0018797 | 8m28s | 7.937 | 8.132 | 12 | 28.70% | 15 | 8m11s | 491 | 0.00203666 | 7m48s | 9.306 | 9.559 | 14 | 32.70% | 15 | 7m33s | 453 | 0.00220751 | 7m10s | 10.738 | 11.07 | 16 | 36.70% | 15 | 7m7s | 427 | 0.002342 | 6m44s | 12.374 | 12.793 | 18 | 39.60% | 15 | 6m58 | 418 | 0.002392 | 6m35s | 13.753 | 14.239 | 结果分析:
1.内存随着核心数的增加会线性增长,但是还有一个小的截距,这一部分内存推测是各个核心公用的,而随着核心数量增长而增长的则是每个核心独享的moment,额不,memory。
2.total speed 是total time的倒数,它的scaling其实挺不理想的18核的速度是4核的4.5倍核心,但是只有2.5倍速度。并且基本上速度已经到极限了,更多的核心(24核往上)可能甚至会拖慢速度。
3.xTB输出文件的最后会给出CPU time和Wall Time的ratio,但是那个ratio不是加速比!准确地说应该是CPU占用时间和现实时间的比例。计算速度并没有这么高的比例!
4.附上一张图:红色对角线是以4核时的速度为基准的理想标度,蓝色点线是实测值。
![]()
Conclusion Time:
xTB的GFN2方法最佳计算核心数大约是12-14核左右,但是如果追求极致速度可以上到18-20核,在往上速度可能会不升反降。另外xTB是吃内存大户,建议大家内存插满,或者想办法简化自己的体系。
未来的计划:1.计算不同成分的体系的xTB内存占用和效率(比如过渡金属)。目前已经有了一些初步的内存占用数据,256GB的内存在12核心下,能够算到大约一万五千个轨道的体系。
2.xTB很多人用来做几何优化,但是本次测试时间有限没有拿来尝试做几何优化,不过考虑到几何优化里面的时间大头其实也是在算单点,所以单点的这个效率标度可以大致近似为几何优化的速度标度。有空我还是会测一下几何优化的。
|
评分 Rate
-
查看全部评分 View all ratings
|