如何将 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
文件的末尾写入职位描述和职位提交脚本。
我是 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
文件的末尾写入职位描述和职位提交脚本。