如何将 save/record SLURM 脚本的配置参数输出到输出文件?

How to save/record SLURM script's config parameters to the output file?

我是 HPC 新手,尤其是 SLURM。这是我用于 运行 我的 python 脚本的示例代码:

#!/bin/bash

# Slurm submission script, serial job

#SBATCH --time 48:00:00
#SBATCH --mem 0
#SBATCH --mail-type ALL
#SBATCH --partition gpu_v100
#SBATCH --gres gpu:4
#SBATCH --nodes 4
#SBATCH --ntasks-per-node=4


#SBATCH --output R-%x.%j.out
#SBATCH --error R-%x.%j.err

export NCCL_DEBUG=INFO
export PYTHONFAULTHANDLER=1

module load python3-DL/torch/1.6.0-cuda10.1

srun python3 contrastive_module.py \
      --gpus 4 \
      --max_epochs 1024 \
      --batch_size 256 \
      --num_nodes 4 \
      --num_workers 8 \

现在每次我 运行 这个脚本使用 sbatch run.sl 它会生成两个 .err 和 .out 文件,我只能将“run.sl”文件名和作业 ID 编码到这两个文件中文件名。但是如何保存我在上面的脚本中设置的所有参数的副本,无论是针对 slurm 配置还是与作业 ID 相关的 python 代码参数以及生成的 .out 和 .err 文件?

例如,如果我 运行 上面的脚本连续 4 次,但每次都使用不同的参数,除非我手动跟踪参数和 JOB,否则从那些对应的文件中不清楚身份证。应该有某种方法可以在 SLURM 中自动执行此操作吗?

您在提交脚本的末尾添加以下两行:

scontrol show job $SLURM_JOB_ID
scontrol write batch_script $SLURM_JOB_ID -

这将在 .out 文件的末尾写入职位描述和职位提交脚本。