2
运行时
为什么使用不同核心运行串行程序速度会有显著差异?
2023-06-25 17:42:14
68

我有一个MPI并行程序,使用sbatch脚本提交任务或者salloc申请计算节点运行程序,我想在一个节点开4个MPI进程,使用下面作业提交脚本。

#!/bin/bash
#SBATCH -N 1
#SBATCH --ntasks-per-node=4
#SBATCH -p liuti
#SBATCH --dcus-per-node=4
#SBATCH --job-name=aaa
mpirun -np 4 ./aaa

发现这样提交的作业,比使用下面这个脚本速度慢得多。

#!/bin/bash
#SBATCH -N 1
#SBATCH --ntasks-per-node=4
#SBATCH -c 4
#SBATCH -p liuti
#SBATCH --dcus-per-node=4
#SBATCH --job-name=aaa
mpirun -np 4 ./aaa

后面我又用串行程序测试,发现同样有这个问题,就是申请不同的cpu核心对程序运行有非常大的影响,核心数越多程序运行越快。请问为什么会出现这样的差异(我没有启用编译优化选项)?

全部评论(2)
只看楼主
T
tianlh
1楼

您好,这个脚本运行可以监控到DCU调用吗?(rocm-smi) 您当前的程序应该还是cpu程序,所以运行速度依赖cpu核心数

将 #SBATCH --dcus-per-node=4 替换为 #SBATCH --gres=dcu:4 再试下呢
2023/6/26
网
网友gtBK4p
回复 @tianlh
我的并行程序使用到了dcu,可以监控到dcu的使用。我不明白的是MPI进程与CPU核数应该是一一对应的,为什么每个进程分配一个核心,和分配多个核心时间会差别很大
2023/6/26
没有更多内容了
--
楼主
Level.1
0 帖子
楼主热帖
暂无数据