gpt4 book ai didi

linux - 如何将当前时间的目录作为 SLURM 日志路径的一部分

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:09 24 4
gpt4 key购买 nike

我有一个可以在 Linux GPU 集群中运行的 .slurm 文件。该文件是这样的:

#!/bin/bash
#SBATCH -o ./myrepo/output.log
#SBATCH -J jobname
#SBATCH --gres=gpu:V100:1
#SBATCH -c 5
source /home/LAB/anaconda3/etc/profile.d/conda.sh
conda activate cuda9.1
CUDA_VISIBLE_DEVICES=0 python train.py

现在我想在日志路径中添加一个文件夹。也许我会看起来像:

#!/bin/bash
#SBATCH -o ./myrepo/**currenttime**/output.log
#SBATCH -J jobname
#SBATCH --gres=gpu:V100:1
#SBATCH -c 5
source /home/LAB/anaconda3/etc/profile.d/conda.sh
conda activate cuda9.1
CUDA_VISIBLE_DEVICES=0 python train.py

我试过:

#!/bin/bash
time=`date +%Y%m%d-%H%M%S`
#SBATCH -o ./myrepo/${time}/output.log
#SBATCH -J jobname
#SBATCH --gres=gpu:V100:1
#SBATCH -c 5
source /home/LAB/anaconda3/etc/profile.d/conda.sh
conda activate cuda9.1
CUDA_VISIBLE_DEVICES=0 python train.py

但是失败了。 #SBATCH 似乎应该在 #!/bin/bash 旁边。

接下来的一个成功了,但是有了它我一次不能运行多个作业。

#!/bin/bash
#SBATCH -o ./myrepo/output.log
#SBATCH -J jobname
#SBATCH --gres=gpu:V100:1
#SBATCH -c 5
source /home/LAB/anaconda3/etc/profile.d/conda.sh
conda activate cuda9.1
time=`date +%Y%m%d-%H%M%S`
CUDA_VISIBLE_DEVICES=0 python train.py
cp ./myrepo/output.log ./myrepo/${time}/output.log

我该如何解决这个问题?

最佳答案

它对我有用。

#!/bin/bash
#SBATCH -o ./myrepo/output_%j.log
#SBATCH -J jobname
#SBATCH --gres=gpu:V100:1
#SBATCH -c 5
time=`date +%Y%m%d-%H%M%S`
mkdir ./myrepo/${time}
source /home/LAB/anaconda3/etc/profile.d/conda.sh
conda activate cuda9.1
CUDA_VISIBLE_DEVICES=0 python train.py
mv ./myrepo/output_$SLURM_JOB_ID.log ./myrepo/${time}/output.log

#SBATCH -o ./myrepo/output_%j.log 表示你的输出文件以output_jobid.log命名,在SBATCH中你可以使用 %j 替换 jobid。但是在 bash 中,你必须使用 $SLURM_JOB_ID,最后一行是将日志移动到文件夹(当前时间)中。通过这种方式,您可以运行多个作业,并且结果位于单独的文件夹中。

关于linux - 如何将当前时间的目录作为 SLURM 日志路径的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57687018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com