运行 在其他文件中找到具有不同变量的作业脚本
run job script with different variables found in other files
假设我在 txt 文件 (var.txt) 中有以下变量列表:
AAA
ABC
BBB
CCC
以下 R 脚本 (script.R),其中 x 是 var.txt 中的一个变量:
print(x)
和以下 HPC slurm 作业脚本 (job.sh):
#!/bin/bash
#SBATCH --job-name test
#SBATCH --ntasks 8
#SBATCH --time 04:00
#SBATCH --output out
#SBATCH --error err
Rscript script.R
我如何运行 job.sh 脚本按顺序执行 4 次,每次在 script.R 中使用不同的变量?
预期输出:
4 个 slurm 作业 script.R 打印 AAA、ABC、BBB 和 CCC。
感谢您的帮助
这是适合 job array 的典型工作负载。使用这样的提交脚本
#!/bin/bash
#SBATCH --job-name test
#SBATCH --ntasks 8
#SBATCH --time 04:00
#SBATCH --output out
#SBATCH --error err
#SBATCH --array=0-3
readarray -t VARS < var.txt
VAR=${VARS[$SLURM_ARRAY_TASK_ID]}
export VAR
Rscript script.R
和script.R
正在
print(Sys.getenv("VAR"))
您将获得一个包含四个作业的作业数组,每个作业 运行 R 脚本具有不同的环境变量值 VAR
,取自 var.txt
文件。
假设我在 txt 文件 (var.txt) 中有以下变量列表:
AAA
ABC
BBB
CCC
以下 R 脚本 (script.R),其中 x 是 var.txt 中的一个变量:
print(x)
和以下 HPC slurm 作业脚本 (job.sh):
#!/bin/bash
#SBATCH --job-name test
#SBATCH --ntasks 8
#SBATCH --time 04:00
#SBATCH --output out
#SBATCH --error err
Rscript script.R
我如何运行 job.sh 脚本按顺序执行 4 次,每次在 script.R 中使用不同的变量?
预期输出: 4 个 slurm 作业 script.R 打印 AAA、ABC、BBB 和 CCC。
感谢您的帮助
这是适合 job array 的典型工作负载。使用这样的提交脚本
#!/bin/bash
#SBATCH --job-name test
#SBATCH --ntasks 8
#SBATCH --time 04:00
#SBATCH --output out
#SBATCH --error err
#SBATCH --array=0-3
readarray -t VARS < var.txt
VAR=${VARS[$SLURM_ARRAY_TASK_ID]}
export VAR
Rscript script.R
和script.R
正在
print(Sys.getenv("VAR"))
您将获得一个包含四个作业的作业数组,每个作业 运行 R 脚本具有不同的环境变量值 VAR
,取自 var.txt
文件。