计算化学公社

标题: 通过cpu内核绑定提高多任务运算效率 [打印本页]

作者
Author:
wwxxxxxx    时间: 2025-1-7 22:30
标题: 通过cpu内核绑定提高多任务运算效率
遇到的问题:
1. 同时提交两个任务时运算速度减半;
2. 双路服务器使用全部核心效率反而弱于半数核心;
3. 提交任务后开始时计算正常,一段时间后运算效率以指数级下降;

原因:
未绑定cpu内核,不同任务争抢cpu资源。

解决方案:
如不想配置slurm等调度环境,可以使用 taskset 命令绑定任务所需内核。例如,对于双路128核心(64×2)的服务器来说,可以使用以下命令提交vasp任务:
  1. taskset -c 0-127 mpirun -n 32 -genv OMP_NUM_THREADS=4 vasp_std
复制代码
其中“taskset -c 0-127”表示使用第0到127号核心进行计算,“mpirun -n 32 -genv OMP_NUM_THREADS=4 vasp_std” 为常规的任务提交命令。
如要提交两个任务可以使用以下两条命令:
  1. taskset -c 0-63 mpirun -n 16 -genv OMP_NUM_THREADS=4 vasp_std
复制代码
  1. taskset -c 64-127 mpirun -n 16 -genv OMP_NUM_THREADS=4 vasp_std
复制代码
对于其他软件只需修改相应的命令即可。例如对于cp2k:
  1. taskset -c 0-63 mpirun -n 16 -genv OMP_NUM_THREADS=4 cp2k.psmp -i cp2k.inp 1>$cp2k/cp2k.out 2>$cp2k/cp2k.err
复制代码


其他解决方案:

如果基于OpenMPI,可以参照sob老师的帖子“通过设置CPU内核绑定降低ORCA同时做多任务的耗时“。
终极的解决方案——配置slurm调度环境。



作者
Author:
zxq    时间: 2025-5-28 23:26
要怎么配置slurm呢

作者
Author:
abin    时间: 2025-5-29 09:11
zxq 发表于 2025-5-28 23:26
要怎么配置slurm呢

有很多教程, 可以follow试试.... 自己都收搜索找找....

或者鄙人有一个自动工具, 可以做到“一键配置”, 大概5分钟到十来分钟(取决于网速), 不过工具套件需付费....

建议自己找各种教程, 多看几个, 综合试试, 就搞定了, 无非是花点时间.




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