Shi*_*ari 5 hpc job-scheduling slurm sbatch
我发现了一些非常相似的问题,这些问题帮助我找到了一个似乎有用的脚本但是我仍然不确定我是否完全理解为什么,因此这个问题......
我的问题(例子):在3个节点上,我想在每个节点上运行12个任务(总共36个任务).此外,每个任务都使用OpenMP,并且应该使用2个CPU.在我的例子中,一个节点有24个CPU和64GB内存.我的脚本是:
#SBATCH --nodes=3
#SBATCH --ntasks=36
#SBATCH --cpus-per-task=2
#SBATCH --mem-per-cpu=2000
export OMP_NUM_THREADS=2
for i in {1..36}; do
srun -N 1 -n 1 ./program input${i} >& out${i} &
done
wait
Run Code Online (Sandbox Code Playgroud)
这似乎按照我的要求工作,在节点上连续运行任务,直到该节点上的所有CPU都在使用,然后继续在下一个节点上运行更多任务,直到再次使用所有CPU等.
我的问题..我不确定这是否真的是它(?),因为我没有完全理解关于-n的srun的手册页,我之前没有使用srun.主要是我的混淆来自"-n":在-n的手册页中说"默认是每个节点一个任务,",所以我预计如果我使用"srun -n 1"只有一个任务将是在每个节点上运行,但似乎并非如此.此外,当我尝试例如"srun -n 2 ./program"时,似乎只运行完全相同的程序两次作为两个不同的任务,无法使用不同的输入文件..我无法想到为什么会这样有用?
| 归档时间: |
|
| 查看次数: |
3188 次 |
| 最近记录: |