使用 srun 设置 sbatch 环境变量
Setting sbatch environment variables with srun
在 blog post by Pierre Lindenbaum 中,srun
在 Makefile
到 运行 作业中被调用。我依赖这种技术,但它根本没有使用 sbatch
,所以我错过了设置类似 sbatch
的环境变量的机会。我可以将以下内容放在哪里,以便 SLURM 知道该怎么做?
#SBATCH -J testing
#SBATCH -A account
#SBATCH --time=1:00:00
#SBATCH --cpus-per-task=1
#SBATCH --begin=now
#SBATCH --mem=1G
#SBATCH -C sb
srun
命令接受几乎所有 sbatch
参数(--array
是一个明显的例外)。在引用的博客 post 中,这些参数设置在以下行:
.SHELLFLAGS= -N1 -n1 bash -c
所以你会写
.SHELLFLAGS= -J testing -A account --time=1:00:00 --cpus-per-task --begin=now --mem=1G -C sb bash -c
请注意,如果您指定 --cpu-per-task=1
,并且保留一个任务的默认值,这可能意味着节点在您的设置中是共享的;在这种情况下,--mem-per-cpu=1G
比 --mem=1G
更有意义
在 blog post by Pierre Lindenbaum 中,srun
在 Makefile
到 运行 作业中被调用。我依赖这种技术,但它根本没有使用 sbatch
,所以我错过了设置类似 sbatch
的环境变量的机会。我可以将以下内容放在哪里,以便 SLURM 知道该怎么做?
#SBATCH -J testing
#SBATCH -A account
#SBATCH --time=1:00:00
#SBATCH --cpus-per-task=1
#SBATCH --begin=now
#SBATCH --mem=1G
#SBATCH -C sb
srun
命令接受几乎所有 sbatch
参数(--array
是一个明显的例外)。在引用的博客 post 中,这些参数设置在以下行:
.SHELLFLAGS= -N1 -n1 bash -c
所以你会写
.SHELLFLAGS= -J testing -A account --time=1:00:00 --cpus-per-task --begin=now --mem=1G -C sb bash -c
请注意,如果您指定 --cpu-per-task=1
,并且保留一个任务的默认值,这可能意味着节点在您的设置中是共享的;在这种情况下,--mem-per-cpu=1G
比 --mem=1G