计算化学公社
标题:
通过cpu内核绑定提高多任务运算效率
[打印本页]
作者Author:
wwxxxxxx
时间:
2025-1-7 22:30
标题:
通过cpu内核绑定提高多任务运算效率
遇到的问题:
1. 同时提交两个任务时运算速度减半;
2. 双路服务器使用全部核心效率反而弱于半数核心;
3. 提交任务后开始时计算正常,一段时间后运算效率以指数级下降;
原因:
未绑定cpu内核,不同任务争抢cpu资源。
解决方案:
如不想配置slurm等调度环境,可以使用 taskset 命令绑定任务所需内核。例如,对于双路128核心(64×2)的服务器来说,可以使用以下命令提交vasp任务:
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” 为常规的任务提交命令。
如要提交两个任务可以使用以下两条命令:
taskset -c 0-63 mpirun -n 16 -genv OMP_NUM_THREADS=4 vasp_std
复制代码
taskset -c 64-127 mpirun -n 16 -genv OMP_NUM_THREADS=4 vasp_std
复制代码
对于其他软件只需修改相应的命令即可。例如对于cp2k:
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