计算化学公社

 找回密码 Forget password
 注册 Register
Views: 5429|回复 Reply: 5
打印 Print 上一主题 Last thread 下一主题 Next thread

[使用经验] 用于vasp的集群配置中的内存问题

[复制链接 Copy URL]

81

帖子

1

威望

220

eV
积分
321

Level 3 能力者

本帖最后由 hgyhgy 于 2022-5-27 13:58 编辑

版主推荐的关于8375c配置,如果是用于vasp, 那么是存在问题的。内存容量太小了。这个结论的前提是没有多节点并行。一般我们使用计算服务的集群,内存不足,可以采取多节点并行。但如果是自己配置的集群,节点数可能就十分有限了,内存的限制效应就会明显。
如vaspwik所说“by increasing the number of cores, the memory requirements per core can be reduced significantly.”,如果能够多节点并行,那么内存容量可能就不那么重要的了。

之前,有回复说,要配置多一点内存。这个其实是有道理的。尤其是机器数量不多,没有并行条件的情况下。

这个初步感觉是不正确的:似乎只要内存不超出限制,计算速度就会一样。
但实际上并非如此。

比如,对于有许多不可约k点的情况,k点并行会加快计算速度。由于一个节点有多达64个cpu, 实际上,就相当于最多可以设KPAR=64。
但KPAR的增加,实际上会极大地提高内存的需求。因此,对于体系比较大的作业,KPAR并不能设很大的数值。

买了两种内存的机器,一种配了16G*16,另一种配了32G*16。共4台。
举一个例子,16G的机器,最多只能设KPAR=2. 32G的,可以设KPAR=4.
KPAR=4的结果如下:
      LOOP:  cpu time  190.0648: real time  190.9808
      LOOP:  cpu time  222.8938: real time  223.9161
      LOOP:  cpu time  255.9396: real time  257.1387
      LOOP:  cpu time  245.7286: real time  246.8927

KPAR=2的结果如下:
      LOOP:  cpu time  287.6880: real time  289.0067
      LOOP:  cpu time  331.3337: real time  333.1666
      LOOP:  cpu time  383.5153: real time  385.1957
      LOOP:  cpu time  368.3202: real time  369.9282



可以看到KPAR的影响还是很大的。
如果是配了64G内存,那么可以设KPAR=8。对计算速度的提高估计还是明显的。

甚至也有可能,把总的MPI数量减小,比如由64减小到32,然后设一个大一点KPAR, 总的速度可能会提升。这个限制着并行数的,就是内存容量。

内存容量大一点,还是比较重要的。甚至我在想,内存频率稍微低一点,容量大一点,是否效果会更好。但这个无法进行测试,只能是猜想的了。
假设速度正比于内存频率,3200/2666=1.2。但一个是16G,另一个是32G。32G的可以使用KPAR=4, 16G的只能使用KPAR=2。333.1666/223.9161=1.48。频率的升高,抵偿不了内存容量的影响。
这个似乎是内存容量更加重要。
当然实际情况是怎样,不太清楚,毕竟计算速度也不是正比于频率的。


对于8375c,32G似乎还是不足。每一步的计算的时间并不太长,也依然会出现内存不足的问题发生。
虽然可以通过降低并行程度来降低内存需求,但这无疑会影响到计算的速度。

至少对于8375c的集群来说,内存似乎应该采取更大的容量。
资金有限的话,可能还是要把资金主要投放在内存上面。甚至可以降低内存频率以换取更大的内存容量。(这个无法直接测试)



内存容量应该是这个8375c配置中最薄弱的部分。应在预算范围,尽可能争取更大的内存容量,如果不能大规模多节点并行的话。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
amani73986 + 5 赞!

查看全部评分 View all ratings

81

帖子

1

威望

220

eV
积分
321

Level 3 能力者

2#
 楼主 Author| 发表于 Post on 2022-6-11 15:07:01 | 只看该作者 Only view this author
如果8375c如果用于vasp计算,而且并不能大规模并行计算,那么单条内存至少要32G, 16G是严重不足的。
最好采用单条64G的内存。

内存不足,不仅仅限制了计算的体系大小,而且让你无法采用多k点并行。
多k点并行,其实是几种并行机制中并行效率最高的,对速度提升最大。

81

帖子

0

威望

1369

eV
积分
1450

Level 4 (黑子)

3#
发表于 Post on 2022-6-15 12:46:44 | 只看该作者 Only view this author
本帖最后由 beowulf 于 2022-6-15 12:47 编辑

常规来说,vasp这个应用每个核心配上2到4G内存,是标配。
对于一个32核心的cpu,双路64核心来说,“标配”是128到256G内存。
按照16个内存通道/内存条来算,单条8G,或者16G是“标配”。
钱充裕的话,512到顶了,而且这些内存很有可能绝大多数时间是闲置的。

vasp的性能吃内存带宽,双路请至少插上8条,最好上16条内存。
版主那个推荐基本上是最优解。

在节点内部多k点并行,也不总有提升,

81

帖子

1

威望

220

eV
积分
321

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2022-10-21 23:19:31 | 只看该作者 Only view this author
beowulf 发表于 2022-6-15 12:46
常规来说,vasp这个应用每个核心配上2到4G内存,是标配。
对于一个32核心的cpu,双路64核心来说,“标配” ...

KRAR=4相对于KRAR=2似乎还是提升很大的。见例子,基本提升了1/2倍,虽未能提升1倍。这样内存增加一倍的话,不就等于多了半台8375c?

7

帖子

0

威望

57

eV
积分
64

Level 2 能力者

5#
发表于 Post on 2024-7-8 17:48:34 | 只看该作者 Only view this author
每次用vasp计算的时候我的内存利用率都很低,有什么办法充分利用吗

202407081748092786..png (17.25 KB, 下载次数 Times of downloads: 17)

202407081748092786..png

42

帖子

0

威望

133

eV
积分
175

Level 3 能力者

6#
发表于 Post on 2024-10-10 13:09:20 | 只看该作者 Only view this author
lizhiguo-TJU 发表于 2024-7-8 17:48
每次用vasp计算的时候我的内存利用率都很低,有什么办法充分利用吗

同问,我也是一样的问题

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 03:23 , Processed in 0.183898 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list