计算化学公社

标题: vasp中影响并行效率的三个变量KPAR,NPAR,NCORE [打印本页]

作者
Author:
zhongyuabc    时间: 2019-1-25 21:03
标题: vasp中影响并行效率的三个变量KPAR,NPAR,NCORE
以下内容来自vasp workshop,附件中附有原PDF文档



作者
Author:
xaomidaxue    时间: 2019-1-27 10:51
good
作者
Author:
dingniu2    时间: 2020-2-20 14:08
请问,能分享一下这个版本的vasp workshop的网址吗,谢谢?
作者
Author:
shinkon    时间: 2022-7-21 15:07
KPAR好多时候都没法用,不可约k点数量经常是奇数。。
作者
Author:
乐平    时间: 2023-7-21 11:03
shinkon 发表于 2022-7-21 15:07
KPAR好多时候都没法用,不可约k点数量经常是奇数。。

同感

不过我测试过,似乎 KPAR 是否能整除 k 点的数目无关紧要。比如 k 点 37 个,设置 KPAR = 2 也可以算,速度也会比默认的 KPAR = 1 快接近 2 倍。

但是似乎 KPAR x NCORE = 核数目才能计算,否则会报错。
作者
Author:
wypkdhd    时间: 2023-7-21 11:28
乐平 发表于 2023-7-21 11:03
同感

不过我测试过,似乎 KPAR 是否能整除 k 点的数目无关紧要。比如 k 点 37 个,设置 KPAR = 2 也可 ...

老师说的没错,实际上NPAR这个参数毫无意义,通常都是KPAR=2 然后 2*NCORE=单节点核数。在γ点作为k点的时候,除了NCORE参数有意义,万不可设置KPAR,不然KPAR等于几,计算速度就等于几分之一。
作者
Author:
dingniu2    时间: 2023-7-22 09:49
wypkdhd 发表于 2023-7-21 11:28
老师说的没错,实际上NPAR这个参数毫无意义,通常都是KPAR=2 然后 2*NCORE=单节点核数。在γ点作为k点的 ...

请问,是不是对于大多数VASP计算,包括优化、单点、频率、态密度、能带。
(1)k点数为1时,不设置KPAR,只设置NCORE=单节点所有核心。
(2)k点数不为1时,设置KPAR=2,NCORE=单节点所有核心/2。
请问这样设置在多数情况下都是最优的吗?
作者
Author:
wypkdhd    时间: 2023-7-23 10:27
第一条里面也是NCORE=单节点所有核心/2。
作者
Author:
乐平    时间: 2023-7-23 11:57
wypkdhd 发表于 2023-7-23 10:27
第一条里面也是NCORE=单节点所有核心/2。

请问您说的“第一条”是指什么? k点数目为 1 ?
如果用 vasp_gam 跑,也是设置 NCORE = 单个节点核心数/2 吗?
作者
Author:
wypkdhd    时间: 2023-7-24 10:11
乐平 发表于 2023-7-23 11:57
请问您说的“第一条”是指什么? k点数目为 1 ?
如果用 vasp_gam 跑,也是设置 NCORE = 单个节点核心数 ...

是,说的就是vasp_gam,我实际测试过,NCORE = 单个节点核心数/2 适用于所有情况。当使用gamma点的时候,设置KPAR等于几,相当于实际使用的核心数处于KPAR值。
作者
Author:
乐平    时间: 2023-7-24 12:04
wypkdhd 发表于 2023-7-24 10:11
是,说的就是vasp_gam,我实际测试过,NCORE = 单个节点核心数/2 适用于所有情况。当使用gamma点的时候, ...

谢谢回复!

当使用gamma点的时候,设置KPAR等于几,相当于实际使用的核心数处于KPAR值。

最后一句里是“相当于实际使用的核心数 ‘除以’ KPAR 值” 的意思吧?


另外,还想请教一下。我在 VASP wiki 里(https://www.vasp.at/wiki/index.php/Category:Parallelization)看到关于 MPI 有下面的描述。

(, 下载次数 Times of downloads: 29)

说是 MPI 的设置会影响队列(rank)之间的通讯,导致快速傅里叶变换(FFT)的速度受到影响,从而影戏 VASP 的计算速度。最优的是上图左侧的形式,队列依次在节点内顺序排列(即队列 1-10 在第一个节点,队列 11-20 在第二个节点),而不是像上图右侧那样在两个节点之间依次排列(即队列1-2在第一个节点,队列3-4在第二个节点,队列5-6在第一个节点,队列7-8在第二个节点,依次类推),这样节点之间的相互通讯会很频繁,导致速度降低。



但是 vasp wiki 上又没有说明如何让队列像上图左侧那样排列…… 很是头疼啊。

不知道您有没有什么建议?

作者
Author:
abin    时间: 2023-7-24 12:47
乐平 发表于 2023-7-24 12:04
谢谢回复!

关键词,
NUMA,
DIE,
MPI-RANK, MPI-Threads

你贴的截图最后一句也说了, 如何处理呀.

更进一步, 查看slurm手册.
作者
Author:
wypkdhd    时间: 2023-7-24 14:51
乐平 发表于 2023-7-24 12:04
谢谢回复!

最后一句意思是,使用gamma点的时候,如果使用核数为40,设置KPAR=2,任务提完,能在top命令里面看到40个核都在运行,但是实际上,只有20个核在干活。
作者
Author:
wypkdhd    时间: 2023-7-24 15:00
乐平 发表于 2023-7-24 12:04
谢谢回复!

第二个关于MPI的问题超出我认知了,不过后面abin回复了。后面内容全都是我个人想法,可能是错误的,见谅。

从我个人而言,节点之间包括双路服务器的cpu之间计算速度的影响;就是节点之间通过网线传输的速度还是慢,cpu和cpu之间通过主板总线数据交换速度也慢。

我这边平时使用dell的R740和R750服务器,以R740的gold6148,一颗cpu20核心,双路40核心80线程,所有的情况我都是使用NCORE=20 KPAR=2,这个是测试过的。原因我也不知道,但是当初用我自己帖子里的intel2019+2015的mkl的组合,我在centos系统上看资源管理器的时候,我记得是有这样的情况,如果你提20个核,刚好是一个cpu上的20个核的利用率是100%,另一个cpu是闲的。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3