内存带宽对VASP计算速度影响

本文章为原创,版权归作者刘锦程所有,文章转载请先取得作者的同意,非常欢迎转发文章链接!严禁以任何方式挪用本文内容,用于以盈利为目的各种活动。

一句话提要:

长久以来,网络上都流传着VASP非常吃内存带宽的说法?到底是真是假?今天就来进行解密!

想知道怎么插,直接跳到最后结论。

首先,要明白内存带宽内存容量,是完全不一样概念。

内存容量,就是我们常说的8GB,16GB,32GB内存,等于插在主板内存插槽上所有内存条容量的总和。

内存带宽,是指cpu处理器和内存之间的交换速度。内存的容量决定“仓库”的大小,而内存的带宽决定“桥梁”的宽窄,两者缺一不可,这也就是常常说道的“内存容量”与“内存速度”,带宽=内存带宽=内存核心频率×内存总线位数×倍增系数。单位通常为 bytes/second。

01 VASP计算到底吃不吃内存呢?

​ 吃内存带宽

​ 正常的VASP计算任务几乎不吃内存容量,跟踪发现,内存利用率不到1%。当然,GW等计算任务还是比较吃内存容量的,不在此讨论范围内。

​ 但是,VASP是十分吃内存带宽的,好多国外的测试都提到这一点。具体有多大影响今天我就测试了一下。

02 我的机器

​ 测试用了两个机器,第一台机器,购买时候型号如下:

  • 志强铂金8176 *2
  • 猫头鹰3647散热器 *2
  • 超威X11DAI-N *1
  • 三星32G DDR4 ECCREG *4
  • 三星500G固态 *1
  • 希捷4TB企业级 *1
  • DX7全塔机箱 *1
  • 长城1250W电源 *1
  • GTX1080ti 欧版 *1

英特尔® 至强® 铂金 8176 基本是目前能买到的非常好的CPU了,单颗28核56线程,Intel官网建议售价 $8719.00 - $8725.00,由于笔者购买的是拆机货,所以极便宜的价格就拿下来了,除了价格和原厂货完全一样的,两颗 8176一共 28*2 = 56 核。没错,下图两个大块头散热塔下面压的就是两颗CPU。这是我正在运行的机器内部。

旋转矩阵

想要知道该CPU应该配什么样的内存,去官网查一下内存规格:

  • 最大内存大小(取决于内存类型):768 GB
  • 内存类型:DDR4-2666
  • 最大内存速度:2666 MHz
  • 最大内存通道数:6
  • ECC 内存支持 :是

对我们配置内存直接有用的是内存类型 DDR4-2666,最大内存通道 6。

  1. 根据带宽计算公式,要尽量插满内存,单颗CPU配6条,两颗配12条,选用的主板也必须支持3通道,支持插12条。
  2. 内存频率最高支持到DDR4-2666MHz,买频率低了不能发挥CPU支持的最大的性能,买频率高了也没有用。所以就买DDR4-2666MHz即可。

03 我的测试

由于刚买的机器只配了4根内存,就只能很尴尬的给每个CPU配两条。

所以,这两天有一口气买了12根内存,三星 16GB DDR4-2666MHz。把之前的4根插到其他的机器上去了。

旋转矩阵

在完全同样的编译参数和同样的计算文件比较了一下计算速度,为了让测试更准确,找了个复杂点的例子。含有锕系元素Th的MOF材料。

旋转矩阵

平均电子步耗时:

​ 2*2 通道:~6.3 sec

​ 2*6 通道:~2.3 sec

结构优化3个离子步总耗时:

​ 2*2 通道:655.737 sec

​ 2*6 通道:251.013 sec

计算速度差了2.6 倍!测试之前并没有想到内存带宽对计算速度影响有这么大。可能是由于三通道CPU只插了两个的原因,如果是23通道估计也会比 22通道好不少。

随后,我又拿了一台E5-2686v4机器(满插需8条内存)测试了一下,对比插满8条内存和只插4条内存的计算速度。

缺陷的石墨烯的结构优化耗时:

​ 2*2 通道:374.268 sec

​ 2*4 通道:257.539 sec

速度也差了1.45倍 !

当然,影响VASP计算速度的因素很多。硬件、编译方式、计算参数等。可以总结好几篇推文了,有时间会慢慢介绍。目前最新版本的VASP代码和VASP6还对intel的AVX-512指令集做了特殊优化,如果买入intel xeon sliver/gold/platinum系列的同学可以尝试用如下指令编译

1
1  OFLAG      = -O3 -xCORE-AVX512

体验一下速度。intel官方网站也有关于指令集的测试AVX-512可以提速接近2倍:

旋转矩阵

https://www.intel.cn/content/www/cn/zh/processors/xeon/scalable/software-solutions/open-source-hls-vasp.html

结论

VASP计算,想要发挥CPU最大运行运行效率,要插足该CPU型号对应最大内存通道数量的内存条,并且保证内存的型号和频率达到CPU支持的最大值。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。