我有一个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核心对程序运行有非常大的影响,核心数越多程序运行越快。请问为什么会出现这样的差异(我没有启用编译优化选项)?

暂无数据
您好,这个脚本运行可以监控到DCU调用吗?(rocm-smi) 您当前的程序应该还是cpu程序,所以运行速度依赖cpu核心数
将 #SBATCH --dcus-per-node=4 替换为 #SBATCH --gres=dcu:4 再试下呢