SLURM:同一脚本可在不同但顺序编号的文件上运行

时间:2018-09-17 22:12:02

标签: slurm

我使用的集群刚刚切换到SLURM,我正在尝试做一些我认为非常简单的事情。我有一个脚本要在按顺序编号的许多文件上运行,例如:

python script.py file1.gz
python script.py file2.gz
python script.py file3.gz

我有一些作品,但无法弄清楚如何将它们组合在一起运行。我想我需要使用#SBATCH --array=0-29来调用文件数量,并且还涉及$SLURM_ARRAY_TASK_ID

#!/bin/bash -l
#SBATCH --ntasks=1
#SBATCH --time=24:00:00
#SBATCH --mem=4G
#SBATCH --array=0-29   ##my files go from file1 - file30

$SLURM_ARRAY_TASK_ID

我不确定如何合并SBATCH --arrayARRAY_TASK_ID以使script.py一次在所有文件上运行。

1 个答案:

答案 0 :(得分:0)

您几乎拥有它:

#!/bin/bash -l
#SBATCH --ntasks=1
#SBATCH --time=24:00:00
#SBATCH --mem=4G
#SBATCH --array=1-30   ##my files go from file1 - file30

python script.py "file${SLURM_ARRAY_TASK_ID}.gz"

最好对数组元素编号,例如对文件编号。然后,调用使用该SLURM变量创建的正确文件名的脚本。

此作业提交脚本将一组作业排队,每个作业的时间限制为24h,最多使用4GiB的内存,并且仅运行一个处理器(一个处理器)。