如何保存 SLURM 作业配置?
How to save SLURM job configuration?
假设我 运行 一个具有以下配置的 slurm 作业:
#!/bin/bash
#SBATCH --nodes=1 # set the number of nodes
#SBATCH --ntasks=1 # Run a single task
#SBATCH --cpus-per-task=4 # Number of CPU cores per task
#SBATCH --time=26:59:00 # set max wallclock time
#SBATCH --mem=16000M # set memory limit per node
#SBATCH --job-name=myjobname # set name of job
#SBATCH --mail-type=ALL # mail alert at start, end and abortion of execution
#SBATCH --mail-user=sb@sw.com # send mail to this address
#SBATCH --output=/path/to/output/%x-%j.out # set output path
echo ' mem: ' $SLURM_MEM
echo '\n nodes: ' $SLURM_NODES
echo '\n ntasks: ' $SLURM_NTASKS
echo '\n cpus: ' $SLURM_CPUS_PER_TASK
echo '\n time: ' $SLURM_TIME
我想保存此作业的配置,例如 'time, memory, number of tasks',以便在作业完成后我知道作业是在什么配置下执行的。
所以我决定在输出文件中打印这些变量,但是输出中没有时间和内存:
\n nodes:
\n ntasks: 1
\n cpus: 1
\n time:
有谁知道更好的方法吗?或者如何引用时间和记忆?
您可以使用 scontrol show job <job_id>
转储有关工作的大量信息。这将为您提供其他内存请求。但是,这不会为您提供实际的内存使用情况。为此,您需要使用 sacct -l -j <job_id>
。
因此,在提交脚本的末尾,您可以添加
scontrol show job $SLURM_JOB_ID
sacct -l -j $SLURM_JOB_ID
选择sacct
命令的输出有很多选项,完整列表请参阅man page。
假设我 运行 一个具有以下配置的 slurm 作业:
#!/bin/bash
#SBATCH --nodes=1 # set the number of nodes
#SBATCH --ntasks=1 # Run a single task
#SBATCH --cpus-per-task=4 # Number of CPU cores per task
#SBATCH --time=26:59:00 # set max wallclock time
#SBATCH --mem=16000M # set memory limit per node
#SBATCH --job-name=myjobname # set name of job
#SBATCH --mail-type=ALL # mail alert at start, end and abortion of execution
#SBATCH --mail-user=sb@sw.com # send mail to this address
#SBATCH --output=/path/to/output/%x-%j.out # set output path
echo ' mem: ' $SLURM_MEM
echo '\n nodes: ' $SLURM_NODES
echo '\n ntasks: ' $SLURM_NTASKS
echo '\n cpus: ' $SLURM_CPUS_PER_TASK
echo '\n time: ' $SLURM_TIME
我想保存此作业的配置,例如 'time, memory, number of tasks',以便在作业完成后我知道作业是在什么配置下执行的。
所以我决定在输出文件中打印这些变量,但是输出中没有时间和内存:
\n nodes:
\n ntasks: 1
\n cpus: 1
\n time:
有谁知道更好的方法吗?或者如何引用时间和记忆?
您可以使用 scontrol show job <job_id>
转储有关工作的大量信息。这将为您提供其他内存请求。但是,这不会为您提供实际的内存使用情况。为此,您需要使用 sacct -l -j <job_id>
。
因此,在提交脚本的末尾,您可以添加
scontrol show job $SLURM_JOB_ID
sacct -l -j $SLURM_JOB_ID
选择sacct
命令的输出有很多选项,完整列表请参阅man page。