了解如何在 Slurm 上提交并行计算作业

Understanding How to Submit a Parallel Computing Job on Slurm

我正在使用一个名为 IAMR 的流体求解器,我正试图通过我的学校集群让它执行得更快。我可以选择添加节点和指定任务,但我不知道我的模拟需要什么区别 运行。我正在尝试渲染单个模拟,到目前为止,以下 slurm 脚本已经运行:

===============================

#!/bin/bash  
#SBATCH --job-name=first_slurm_job   
#SBATCH -N 10  
#SBATCH -p debug_queue  
#SBATCH --time=4:00:00  # format days-hh:mm:ss  

./amr3d.gnu.MPI.OMP.ex inputs.3d.rt

================================

除了不知道要请求多少个节点和任务之外,我不确定我是否正确提交了作业。在 IAMR 指南中,它指出: 对于 MPI 构建,您可以 运行 并行使用,例如:

mpiexec -n 4 ./amr2d.gnu.DEBUG.MPI.ex 输入。2d.bubble

但是我在提交作业时并没有使用那一行。我问了一个朋友,他们说:通常“任务”的意思是“MPI 进程”,所以如果你把你的问题分成 4 个网格然后 AMReX 的工作方式,你可以让每个 MPI 等级更新一个网格,所以4 个网格你会要求 4 个 MPI 进程。 那么这是否意味着如果我请求 4 个任务,我必须弄清楚如何将网格分成 4 个部分?任何见解都会有所帮助!这是我的集群规格:

Cluster Specs

您的文件名我们amr3d.gnu.MPI.OMP.ex。这是一个 OpenMP 程序(并行使用多个内核)或一个 MPI 程序(在多个节点上使用多个进程)还是一个混合程序,就像文件名一样?

好的,这是一个混合程序,所以我们说你使用 2 个节点,每个节点 16 个核心,那么你可以这样做

#!/bin/bash  
#SBATCH --job-name=first_slurm_job   
#SBATCH -p debug_queue  
#SBATCH --time=4:00:00  # format days-hh:mm:ss  

#SBATCH --cpus-per-task=16
#SBATCH --ntasks=2
export OMP_NUM_THREADS=16

echo "Used nodes:" $SLURM_NODELIST
mpirun ./amr3d.gnu.MPI.OMP.ex inputs.3d.rt