计算化学公社

标题: 请问如何对设备做非常仔细的调优才能实现CP2K的最大性能? [打印本页]

作者
Author:
洛川i    时间: 2025-7-6 02:14
标题: 请问如何对设备做非常仔细的调优才能实现CP2K的最大性能?
问题背景:1.现有老服务器一台,在提交两个CP2K任务时,核数占用异常,且拖慢第一个任务计算速度,打算先用社长提供的核数绑定方法试试。如若
                2.不久将根据社长装机配置的帖子加几台机器(但资金有限,无法弄集群了)
紧接着,看到一篇帖子如图,惊觉自己并没有进行相关调优(这也可能是问题背景1的原因)。
问题:1.对于问题背景1,我的思路是先用社长提供的核数绑定方法试一试,如若真行不通,打算再试试单机slurm安装脚本。请问这个思路是否正确?
          1.1.接着,请教各位老师如何对CP2K相关软件或者环境设置如何系统性的去调优?以便新机器到了去调优。
          2.此外,对不同体系的第一性原理计算,比如一个二维体系一个三维体系的计算,在做核数并行最佳效率测试时是否都要做测试,还是设备不同,才做最佳核数并行测试?或是都要做?
          2.1.对于开超线程好的CPU是否测试最佳效率并行核数上限就是物理核心(社长帖子里有提到超线程单个任务的核数不要超过物理核心数)?
          2.2.对于不开超线程好的CPU是不是测试上线就可以是最大物理核心数?
感谢老师的解答,万分感谢。



作者
Author:
sobereva    时间: 2025-7-6 08:40
绝大多数CP2K用户,通常只用popt版同一时间跑一个任务,在运行方式上没什么调优的事,有多少物理核心就用多少物理核心(无论开不开超线程)
至于用psmp版实现MPI+OpenMP并行,以及同时跑多个任务,才有调的事。怎么调取决于具体计算场景(计算的任务、用的理论方法、体系规模、同时跑几个/哪些计算等)。调主要是考虑OpenMP线程数和MPI进程数怎么分配、每个计算给多少核。并且注意任务和CPU核心的绑定,在《通过设置CPU内核绑定降低ORCA同时做多任务的耗时》(http://sobereva.com/553)里专门说过。
同时跑多个任务时,不管开不开超线程、不管什么方式并行,总的并行核数都不建议超过物理核心数。至于超线程的影响,如果关了后可以在满载时有更高频率,可以关,否则没必要关。

作者
Author:
洛川i    时间: 2025-7-6 09:51
sobereva 发表于 2025-7-6 08:40
绝大多数CP2K用户,通常只用popt版同一时间跑一个任务,在运行方式上没什么调优的事,有多少物理核心就用多 ...

好的,谢谢老师
作者
Author:
abin    时间: 2025-7-6 15:29
默认,
cp2k.popt ---> cp2k.psmp
这两个是一个东西. 几乎不用纠结用哪一个.

也许差异来自于 BLAS, LAPACK, ScaLAPACK, libxsmm, spla, cosma,
这些组件大概涉及矩阵运算....

使用调度器做资源调度, 应该是比较推荐的做法.

当然需要知晓的是,
多颗处理器的场景, 要区分机器满负荷; 处理器半负荷; 单颗处理器满负荷, 单颗处理器半负荷等工况下,
处理器的综合性能是有差异的.

当然了, 避开针对移动设备搞的大小核处理器.



作者
Author:
洛川i    时间: 2025-7-6 15:42
abin 发表于 2025-7-6 15:29
默认,
cp2k.popt ---> cp2k.psmp
这两个是一个东西. 几乎不用纠结用哪一个.

好的,谢谢鸭




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