如何解决了解如何在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。气泡
但是我提交工作时没有使用该行。我问一个朋友,他们说:通常,“任务”的意思是“ MPI流程”,因此,如果将问题分解成4个网格,然后AMReX起作用,则每个MPI等级可以更新一个网格,因此使用4个网格您将要求4个MPI流程。那是否意味着如果我请求4个任务,我必须弄清楚如何将网格划分为4个部分?任何见识都会有所帮助!这是我的集群规格:
解决方法
您的文件名为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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。