硬盘速度与内存容量对量子化学计算速度影响的测试(2)
时间:2019-04-11 14:55 来源:互联网 作者:COCO 点击:次
4.1 Gaussian16 以下Gaussian计算若未注明,则默认计算设置为%nproc=36 %mem=245GB,且rwf文件产生大小不设上限。测试中除了Ru(bpy)3外都没有利用对称性以加速。 (1)振动分析。BNtube。关键词B3LYP/6-31G* freq nosymm。实际产生rwf文件1.5GB。 PM961:24m11s 影驰铁甲战将:24m27s 希捷4TB:24m29s %mem=60GB + PM961:24m15s 可见,由于普通泛函下振动分析任务的临时文件小,硬盘速度对耗时基本没有影响,内存分配大小也不影响耗时。 (2)超极化率计算。DA3。关键词CAM-B3LYP/6-311++G(2df,p) polar nosymm。实际产生rwf文件314MB。 PM961:20m28s 影驰铁甲战将:20m32s 希捷4TB:20m35s %mem=60GB + PM961:20m35s 情况如振动分析,内存容量和硬盘速度对耗时基本也没有影响。 (3)TDDFT。Ru(bpy)3。关键词B3LYP/genecp TD(nstates=30)。对Ru用的SDD,其它原子6-311G*。实际产生rwf文件7.6GB。 PM961:15m37s 影驰铁甲战将:15m32s 希捷4TB:15m31s %mem=60GB + PM961:15m36s 这个测试还是没发现硬盘速度和内存分配量对总耗时有什么影响。 (4)MP2单点。DA3。关键词MP2/def2TZVP nosymm。实际产生rwf文件150GB。 PM961:13m28s (此数据比较异常,原因不明,不做讨论) 影驰铁甲战将:12m44s 希捷4TB:13m20s %mem=60GB + PM961:12m42s %mem=60GB + 180GB vram:12m22 (vram指把内存虚拟成硬盘) 这个任务由于rwf文件比较大,终于一定程度体现出硬盘速度对耗时的影响。影驰SSD比机械硬盘快了一些。如果用vram,速度还能再快一点。不过此任务依然没有很充分体现出大内存或高速硬盘的效果。 值得注意的是,如果把rwf文件产生的上限人为设为100GB,程序发现可用空余硬盘空间不够,会自动用FullDirect方式做MP2,此时rwf大小仅有268MB,而作为代价,计算耗时较高,为16m17s。 (5)CCSD(T)单点。苯胺。关键词CCSD(T)/cc-pVTZ。实际产生rwf文件在CCSD迭代时为21GB,计算(T)时为79.4GB(且占内存达到>90%)。 PM961:26m18s 影驰铁甲战将:34m32s 希捷4TB:62m52s %mem=60GB + PM961:20m21s %mem=60GB + 180GB vRAM:19m18s 在CCSD(T)计算时,终于体现出了硬盘速度对计算耗时的巨大影响!SATA3的SSD比机械硬盘快了近一倍,如果用更快的SSD,即PM961,耗时还可以进一步下降。测试中还看到一个违背一般直觉的事,就是分配的内存从245GB降到60GB,耗时反倒从26m18s降到了20m21s,看似内存分配大了还有害。应该说这是G16程序的缺陷所致,实际上在G09,以及其它体系的CCSD(T)计算上也都发现了这个情况。既然内存给大了反倒耗时增高,而且CCSD(T)对硬盘性能敏感,那么少给点内存,而把富裕的内存虚拟成硬盘,岂不美哉?事实也证明此做法奏效,如上述数据所示,把180GB内存虚拟成硬盘来读写rwf的话,耗时比用PM961进一步降低,不过降低得不算很大了,因为PM961已经很快了,此时硬盘读写速度的瓶颈已经没那么显著了。 还有两种特殊情况: PM961(rwf上限设15GB):会报错Transformation cannot fit in the specified MaxDisk. PM961(rwf上限设25GB):31m32s(到了(T)那一步,由于硬盘不够,提示Number of processors reduced to 6 in MP4TCl:,之后CPU只有600%占用了) 这体现出CCSD(T)对硬盘空余容量是有较高要求的。剩余容量达不到最低要求,根本算不了;剩余容量太小,则并行度会自动降低,明显降低计算速度。 (6)SCF=conventional单点。DA3。关键词HF/def2TZVP nosymm。实际产生rwf文件为192GB。 PM961:23m30s 希捷4TB:29m27s 这个测试其实没什么意义,只不过由于SCF=conventional把电子积分全写到rwf里,硬盘读写量会很大,所以随便测试了一下硬盘速度的影响。可见PM961比机械硬盘还是有明显优势的,只不过没有预期的那么夸张。SCF=conventional现在根本没人用,因为以direct方式做SCF,此任务仅需要2m59s,rwf文件仅有269MB。即曰,哪怕有高速硬盘,conventional还是远不如direct。还尝试了用incore方式做SCF,此时占内存高达223GB,rwf文件为182MB。虽然incore时积分都存在内存里,理应比direct快,但是实际耗时高达11m12s,是因为Gaussian的incore模式做得不好,CPU利用率非常低,而且用direct时还可以用积分屏蔽等技巧来加速。 4.2 ORCA 4.0.1.2 ORCA是MPI方式并行,maxcore设的是每个MPI进程最多用的内存量(MB)。由于实际使用量可能超过maxcore,因此必须留有一定富余。计算时候皆为36核并行,对于256GB机子来说,maxcore=6000比较稳妥,而64GB机子来说,maxcore=1400一般没问题。 (1)双杂化单点。BNtube。关键词RI-PWPB95 def2-QZVPP def2/JK def2-QZVPP/C RIJK。临时文件占硬盘最多用到15GB maxcore=6000,影驰铁甲战将:20m16s maxcore=6000,PM961:20m20s maxcore=6000,希捷4TB:20m18s maxcore=1400,PM961:24m50s 即便此体系不小了,计算级别还挺高,但对于此任务,硬盘读写仍不构成瓶颈,没体现出硬盘速度对耗时的影响。而内存分配量对耗时有一定影响,给大了耗时会降低。 (2)DLPNO-CCSD(T)单点。DA3。关键词DLPNO-CCSD(T) def2-TZVP def2/JK def2-TZVP/C RIJK tightSCF。临时文件占硬盘最多用到15GB maxcore=6000,影驰铁甲战将:18m37s -817.155278103676 maxcore=6000,PM961,带tightPNO:78m21s -817.160700708131(临时文件占硬盘最多用到44GB) maxcore=6000,PM961:18m39s maxcore=6000,希捷4TB:18m44s maxcore=1400,PM961:18m47s DLPNO-CCSD(T)是ORCA独家的降低CCSD(T)耗时的重要方法,这体系直接用CCSD(T)在现有条件下是绝对算不动的,而做DLPNO-CCSD(T)则轻而易举。从测试来看,硬盘速度和内存分配量并未对DLPNO-CCSD(T)耗时有明显影响。还顺带测试了带着tightPNO关键词的情况,这使得DLPNO-CCSD(T)比默认设定下更逼近CCSD(T)的结果,不仅耗时增加几倍,对硬盘空余空间的要求也显著增加了。 (3)CCSD(T)单点。苯胺。关键词CCSD(T) cc-pVTZ tightSCF。临时文件占硬盘最多用到29GB maxcore=6000,PM961:13m9s maxcore=6000,希捷4TB:13m6s maxcore=1400,PM961:16m17s 和Gaussian不同的是,ORCA里做CCSD(T),高速硬盘并没发挥什么用处,而分配大内存,和双杂化计算时一样会使得耗时降低。 4.3 Molpro 2015 对Molpro 2015只是做个简单测试,CCSD(T)/cc-pVTZ单点。苯胺。Molpro也是MPI并行的程序,-m后面设的是每个进程的内存使用量上限,800m代表800mwords*8=6.4GB。-n后面是并行核数。在测试时发现Molpro的计算耗时的重现性比较差,所以仅供粗略参考 -m 800m -n 36,PM961:10m20s -m 400m -n 36,PM961:10m55s -m 100m -n 36,PM961:10m51s -m 800m -n 36,影驰铁甲战将:11m10s -m 800m -n 36,希捷4TB:12m9s -m 100m -n 36,希捷4TB:12m31s -m 100m -n 36,180GB vRAM:10m37s -m 800m -n 18,PM961:11m55s -m 800m -n 8,PM961:21s52s -m 3500m -n 8,PM961:19m5s (责任编辑:admin) |
