我对 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 中应该有某种方法可以自动执行此操作,不是吗?
您在提交脚本的末尾添加以下两行:
scontrol show job $SLURM_JOB_ID
scontrol write batch_script $SLURM_JOB_ID -
Run Code Online (Sandbox Code Playgroud)
这将在文件末尾写入作业描述和作业提交脚本.out。
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |