如何在 HPC 中一起运行多个基于 python 的 slurm 作业

问题描述 投票:0回答:1

我需要提交 100 个 slurm 作业,它们都执行相同的计算,但略有变化(唯一的区别是年份;所有文件都有不同的年份)。有没有办法将它们一起提交,而无需编写 slurm 文件并单独运行?

例如,我有 100 个 python 文件,名称为:

process1.py
process2.py
process3.py
、...等等。我正在寻找一种可以为所有这些资源一起分配 HPC 资源的方法,如下所示-

#!/bin/bash
#SBATCH -n 2
#SBATCH -p main
#SBATCH --qos main 
#SBATCH -N 1                             
#SBATCH -J name
.
.
. #other SBATCH commands
.
.
python process1.py
python process2.py
python process3.py
python process4.py....

python parallel-processing slurm hpc multiple-processes
1个回答
0
投票

您是否希望为每个 Python 文件提交单独的作业,或者让所有 100 个文件作为同一作业的一部分同时运行?

您始终可以创建一个循环并在循环内运行 Python 文件:

for ((i = 1; i <= 100; i++)); do
    curr_file = "process$i.py"
    python curr_file

如果您想并行运行文件并且您的系统支持,您还可以使用 slurm 作业数组。这个论证是这样的:

#SBATCH --array=1-2 # where 2 is maximum job allocation
© www.soinside.com 2019 - 2024. All rights reserved.