硬盘速度与内存容量对量子化学计算速度影响的测试

时尚
时尚
2019-04-11 14:55
来源:互联网

硬盘速度与内存容量对量子化学计算速度影响的测试

文/Sobereva @北京科音   2017-Dec-5




1 前言 本文的目的是通过几种主流量子化学程序的实测数据,说明量子化学计算用的机子有没有必要用大内存,有没有必要用高速硬盘,这俩问题是购买服务器的人很关注的问题。经常有人认为内存容量只要让计算得以进行就够了,加大内存对提升速度并没用处,本文也通过测试看看是否是这么回事。

本文测试用的机子是双路XEON E5-2696v3(2*18=36个物理核心),主板X10DRL-i。机子内存比较大,是8*32GB DDR4-2133,共256GB,因此有较大余地测试内存对计算速度的影响。购机过程在这里有详细记录《淘宝店购买双路2696v3服务器的过程、使用感受和杂谈》(?mod=viewthread&tid=6310)。在买这台机子数日之后,又买了个三星PM961,花了1289软妹币。此时机子里一共有三个硬盘:
(1)希捷4T企业版
(2)影驰铁甲战将SATA3 480GB固态硬盘
(3)三星PM961,是M.2口512GB高速固态硬盘
这三个硬盘,连续读写速度依次由慢到块,正好可以用来对比硬盘速度对量化计算的影响。三块硬盘性能测试如下(Win10-64bit):

希捷4T企业版

硬盘速度与内存容量对量子化学计算速度影响的测试



影驰铁甲战将

硬盘速度与内存容量对量子化学计算速度影响的测试



PM961

硬盘速度与内存容量对量子化学计算速度影响的测试




2 关于硬盘速度和PM961 之所以笔者机子之前已经有一个大容量机械和一个固态了,而后来又买了PM961,是因为PM961的性能远远超过SATA3口的固态硬盘。SATA3对SSD的限制已经愈发明显,早已不是可忽视的程度了。如影驰铁甲战将测试成绩所示,SATA3的SSD一般持续读写速度也就做到五六百MB/s,而走M.2或PCI-E 3.0 4x口的SSD,如PM961,则完全脱离了这个束缚,连续读写性能完爆SATA3硬盘。还在惯用SATA3 SSD的人应该转变观念了。在M.2/PCI-E的SSD普及之前,一些人为了追求更好性能,把SATA3 SSD组Raid0,性能确实提高很多,但是相对于如今的M.2/PCI-E的SSD,已经是鸡肋了。

量化计算有的任务基本不怎么读写硬盘,比如DFT单点、优化,对这类任务显然用什么硬盘都不会影响性能;而有的任务则会产生巨大的临时文件并大量读写,诸如CCSD(T),因此硬盘速度必然会对性能产生不可忽视的影响。本文说的硬盘速度一律是指硬盘的连续读写速度,而不是随机读写速度,后者只影响大量操作小文件的速度(在计算化学范畴中,对于化学信息学、虚拟筛选等问题才可能产生较明显影响)。

笔者购买PM961的目的不是用来为了装系统、让应用程序启动速度更快,而纯粹是把这块硬盘当苦力用。各种量化程序的临时文件都在这里读写,而不装任何程序和资料,因此就算这硬盘因为累计读写量太大坏掉,也不会造成其它损失,找店家换货就完了。对于经常要跑后HF任务的人,手头不太紧的话,建议苦力盘容量不要买256GB的,建议>=512GB,因为对于大体系后HF任务,临时文件达到三四百GB甚至更多都是不少见的(对于Gaussian,由于可以方便地对rwf文件进行分割,因此还好。而大多数程序临时文件只能指定在一个目录下读写,苦力盘容量不够就比较麻烦了)。

由于大多数读者对三星PM961比较陌生,这里多说几句。PM961类似于三星高端固态硬盘960EVO的OEM货,无包装,性能没什么差别,价格便宜很多,淘宝店一般都提供质保,笔者买的这个店家3年包换:

硬盘速度与内存容量对量子化学计算速度影响的测试



笔者服务器的X10DRL-i主板并没有M.2口,没法直接用PM961,因此在淘宝上花20块钱买了个佳翼SK4转接卡,用来将M.2转换为PCI-E 3.0 4x口

硬盘速度与内存容量对量子化学计算速度影响的测试



为了散热好点,又花18块钱买了个散热条,组装好后:

硬盘速度与内存容量对量子化学计算速度影响的测试



刚上手把玩一会儿后截的硬盘信息

硬盘速度与内存容量对量子化学计算速度影响的测试



估计会有人怀疑,这么转接一下,性能肯定打折扣吧?会不会不稳定?从上面的速度实测已经充分说明,用这个转接卡速度丝毫不打折扣,完全不影响PM961顶级性能的发挥。而且根据3个月的使用感受,也未曾发现有不稳定的情况。所以以上转接方式非常稳妥。

虽然买原本就是PCI-E口的固态硬盘就能免得转接一下,但笔者强烈不建议购买,因为性价比远远低于PM961。例如PCI-E 3.0 4x的浦科特M8SeY 512GB,性能不及PM961,却还要卖到2000出头。市面上也有其它M.2口的SSD,同等容量价格和PM961差不多,比如Intel 600P 512GB,但性能都落后于PM961,所以也不建议购买。

顺带一提PM961在这里可以下载三星官方驱动,对于Win10,装不装对测试性能影响不大。


3 关于将内存虚拟成硬盘 硬盘既可以虚拟成内存,内存也可以虚拟成硬盘。当内存非常大,又无用武之地时,把内存虚拟成硬盘,从而加速大量读写硬盘任务的速度往往是有用的做法。虽说PM961已经很快了,但是跟服务器的内存读写性能来比还有一个以上数量级的差距。Linux下可以用ramfs或者tmpfs方式把内存虚拟成硬盘,两种做法实测性能没什么差异,笔者比较习惯用ramfs的做法。使用非常简单,比如要把最多180GB内存作为虚拟硬盘挂载到/vram目录,就执行以下命令
mkdir /vram
mount none /vram -t ramfs -o maxsize=180G
这样在/vram里读写文件就相当于在内存中读写了。无论是运行umount /vram手动卸载之,还是重启,/vram里面的文件都会消失。

后文将测试,对于后HF任务,把大内存充分分配给程序耗时更低,还是只把部分内存分配给程序,而把另一部分内存作为虚拟硬盘用于读写临时文件耗时更低。


4 内存容量与硬盘速度对计算耗时的影响实测 下面将通过最常用的量化程序Gaussian16 A.03和ORCA 4.0.1.2(皆64bit),执行不同类型任务,来考察分配的内存量和硬盘速度对计算耗时的影响,看看买服务器时钱怎么花最划算。测试机子的硬件配置上面已经说过了,系统是CentOS 7.3 64bit。所有测试的项目都是对内存容量、硬盘有一定要求的,而普通泛函算单点、优化这类问题,占内存很少,也不怎么读写硬盘,因此不纳入测试。下面测试的耗时一律都是指wall clock time,不是CPU time。每次测试的计算耗时都有可能略有不同,因此如果两个计算条件耗时相差不多的话,就当成没有差异即可。

测试中涉及到的体系如下,选的体系比较贴近于现阶段大家通常计算的大小,并没有刻意去选巨大体系(对于巨大体系,测试结论可能会有所不同,但这不是本文关注的):

©版权所有,未经授权不得转载以及任何形式使用。
标签:   响的      内存      速度      容量      量子   
你该读读这些:一周精选导览
更多内容...
品牌推荐 时尚衣橱