首页 > 解决方案 > 在 slurm 上安排数组作业时使用 argparse?

问题描述

我正在尝试使用 slurm 运行一系列作业。
我使用这个命令:

sbatch --array=0-1 my_script.sh 

现在, my_script.sh 有

#!/bin/bash

#SBATCH --gres=gpu:1
srun --gres=gpu:1 --chdir=$(pwd) singularity exec --nv --bind /data0 gtc_dev_v9.simg python train.py $1 -v $SLURM_ARRAY_TASK_ID

主要部分是我运行python代码的方式。现在, train.py 期望通过命令行获得参数列表。

因此,为了运行多个实验,我在 train.py 中定义了一个字典列表,其中包含我想要运行的不同实验的所有 argparse 参数。现在,我想要的是根据 SLURM_ARRAY_TASK_ID 选择一个字典并忽略 argparse。

现在的问题是我在运行此代码时不断收到 argparse 错误。

train.py: error: unrecognized arguments: -v 1

有没有办法绕过 argparse?因为我想保留该选项以备不时之需,但也可以选择字典。谢谢。

标签: pythonargparseslurm

解决方案


推荐阅读