在 slurm 系统中,当我使用斯伦命令来运行程序。它运行速度非常慢,似乎只有一个处理器在工作。
srun --pty -A free -J test -N 1 -n 1 -c 1 mpirun -np 16
$FEAPHOME8_3/parfeap/feap -log_summary lu.log
但如果我写一个小批量脚本,它可以运行得非常快,而且看起来所有的处理器都在工作。
#!/bin/sh -l
#SBATCH --job-name=test
#SBATCH --account=free
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=24
#SBATCH --cpus-per-task=1
#SBATCH --exclusive
#SBATCH --time=6:00:00
echo ' '
echo ' ****** START OF MAIN-JOB ******'
date
srun -n 16 echo y | mpirun -np 16 $FEAPHOME8_3/parfeap/feap -log_summary lu.log
echo ' ****** END OF MAIN-JOB ******'
#End of script
有人可以告诉我发生了什么事吗?
答案1
该参数-N 1 -n 1 -c 1
请求一个节点上有一个 CPU。将它们替换为-n 16
并删除mpirun
;将srun
处理 MPI 启动过程。