SLURM:不同但按顺序编号的文件上的相同脚本 运行

SLURM: same script run on different but sequentially numbered files

我使用的集群刚刚切换到 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 运行ning。

你几乎拥有它:

#!/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 变量创建的正确文件名调用脚本。

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