【问题标题】:Values in a sbatch --array command different from the job task IDs, each of them run in a different jobsbatch --array 命令中的值与作业任务 ID 不同,它们中的每一个都在不同的作业中运行
【发布时间】:2023-07-13 14:56:01
【问题描述】:

是否可以在 sbatch --array 命令行中为脚本提供一些值与作业任务 ID 不同,然后每个值在不同的作业中运行?

sbatch --array=1-2 script.sh 4 6

script.sh 存在

#!/bin/bash

VALUE=$"$SLURM_ARRAY_TASK_ID"

echo $VALUE

然后,在他们跑完之后,

cat slurm*

返回

1
2

但我想知道是否可以让 2 个作业返回 sbatch --array 命令中输入的“4 6”值,每个:

4
6

【问题讨论】:

    标签: bash parallel-processing jobs slurm sbatch


    【解决方案1】:

    你可以使用indirect variable expansion:

    #!/bin/bash
    
    VALUE=${!SLURM_ARRAY_TASK_ID}
    
    echo $VALUE
    

    注意感叹号。之后

    sbatch --array=1-2 script.sh 4 6
    

    你应该有两个输出文件,一个是4,一个是6

    【讨论】:

      最近更新 更多