如何将 SLURM 脚本的配置参数保存/记录到输出文件?

mim*_*ain 2 hpc slurm

我对 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 \

Run Code Online (Sandbox Code Playgroud)

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

例如,如果我连续运行上述脚本 4 次,但每次使用不同的参数,则无法从对应的文件中清楚地看出,除非我手动跟踪参数和作业 ID。SLURM 中应该有某种方法可以自动执行此操作,不是吗?

dam*_*ois 5

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

scontrol show job $SLURM_JOB_ID
scontrol write batch_script $SLURM_JOB_ID -
Run Code Online (Sandbox Code Playgroud)

这将在文件末尾写入作业描述和作业提交脚本.out