前言
在上一篇文章中,我们介绍了为Windows系统从零开始打造WSL计算环境的方法,这一期我们综合过去整活文章、XX人的博客和科音论坛的帖子,综合性的做一篇对计算效率的对比。
原始整活文
灵感来源:
在过去我写过一篇文章,主要是调用手头笔记本和Azure云服务器(羸弱)进行的计算测试。由于Azure的体验额度只有200刀,因此仅对比了在此额度范围内能够正常跑Gaussian16任务的机型进行了对比。
我把这篇幽默文章的结果放在这里供大家做一个没有意义的参考。
测试文件
- 原子数:53
- 元素组成:C,H,N,O,F
- 任务类型:过渡态结构优化与震动计算与柔性扫描
- 计算方法:B3LYP-D3/6-31G(d)
测试结果
下面是整合的结果:
上图中的7950X是上篇文章提到的台式机的配置。下一节会简单说一下。
小新pro16(联想小新 Pro 16 2021 锐龙独显版)配置(没记错的话好像用的是Win版的G16):
- CPU: AMD 5800H
- GPU: NVIDIA GTX 1650 (GDDR6 4GB)
- 内存: 16GB
补充,值得参考的若干指令:
- 用
grep cpu.cores /proc/cpuinfo | sort -u
查看物理CPU数量; - 用
grep -o -e sse4_2 -e avx -e sse4a -e avx2 /proc/cpuinfo
指令确定一下Gaussian适用的版本,一般来讲装带AVX2指令集的Gaussian版本;
新版本
北京科音文章(2024年11月版)中提到的DIY电脑配置(省略部分内容):
- CPU:AMD Ryzen 9 7950X(16核,4.5-5.7GHz,集显)
- 固态硬盘:三星PM9A1 1TB*2
- 内存:美商海盗船 32GB DDR5-5200*2
测试文件
文件1(中间体优化+振动)
- 原子数:109
- 元素组成:C,H,N,O,P,S,Fe,Ir
- 任务类型:中间体优化+振动
- 计算方法:M06/def2-SV(P)
文件2(过渡态优化+振动)
- 原子数:130
- 元素组成:C,H,N,O,P,S,Fe,Ir
- 任务类型:过渡态+振动
- 计算方法:M06/def2-SV(P)
文件3(单点能量)
- 原子数:130
- 元素组成:C,H,N,O,P,S,Fe,Ir
- 任务类型:单点能量
- 计算方法:M06/6-311+G(d,p)-SDD(Ir,Fe)/SMD(DCE)
测试结果
图中标记:HPC和组内均为64G/16线程;7950X为32G/16线程
与WIN版对比
因为WIN版G16的计算效率和核调用能力非常稀烂,所以几乎没有人建议在Win系统使用Gaussian进行计算,除了体系原子数不多以外。
这边留个面子还是对比一下看看。
G16版本,WIN版:Gaussian16 Rev C.01/Linux版:Gaussian 16 ES64L-G16RevC.01。
WSL中默认占用内存的一半,因此本次对比修改配置文件预留10G给Windows跑,剩下48G都给WSL。
Win版有两大特征:
- 内存调用情况不明确(WIN版配置里面写64G内存的时候疑似是按当前可分配内存来进行动态调整的,具体我也不知道占用情况,后面就不重复强调了)
- 多核调用效率低下(输出文件中Job cpu time与Elapsed time几乎相等)
内存·线程配置的影响
计算对象:21原子中间体(C、H、N M06/B3LYP 单位:秒)
任务原子数大小的影响
计算对象:53原子中间体/130原子过渡态(参考上两节·32G/16线程)
对比结果:
测试结论
从上文测试结果来看:
- Sobereva推荐的配置如果只是跑单个计算任务的话效果确实不错,以一半的内存占用赶上组内服务器几乎1:1的计算效率,推荐配置在溶剂化单点计算结果中甚至还有小小的优势。我校这个超算分配的服务器是有点偏老了……效率整体低20%左右,以前没有仔细对比过现在看也确实没必要太依靠学校HPC。
- 原子体系越大与WSL版差距越小,但是还是超过3倍……Win版的Gaussian还是安息吧。
- 线程设置比内存设置对计算效率的影响更大,另外配置影响对Win版影响也比Linux版明显不少。