【发布时间】:2018-06-18 13:22:12
【问题描述】:
我有一个具有四个节点 A、B、C 和 D 的计算集群和 Slurm 版本 17.11.7。我正在为 Slurm 阵列工作而苦苦挣扎。我有以下 bash 脚本:
#!/bin/bash -l
#SBATCH --job-name testjob
#SBATCH --output output_%A_%a.txt
#SBATCH --error error_%A_%a.txt
#SBATCH --nodes=1
#SBATCH --time=10:00
#SBATCH --mem-per-cpu=50000
FOLDER=/home/user/slurm_array_jobs/
mkdir -p $FOLDER
cd ${FOLDER}
echo $SLURM_ARRAY_TASK_ID > ${SLURM_ARRAY_TASK_ID}
脚本生成以下文件:
- output_*txt,
- error_*txt,
- 根据 ${SLURM_ARRAY_TASK_ID} 命名的文件
我在我的计算集群节点 A 上运行 bash 脚本,如下所示
sbatch --array=1-500 example_job.sh
500 个作业分布在节点 A-D 之间。此外,输出文件存储在节点 A-D 上,相应的阵列作业已在其中运行。在这种情况下,例如,大约 125 个“output_”文件分别存储在 A、B、C 和 D 上。
有没有办法将所有输出文件存储在我提交脚本的节点上,在这种情况下,在节点 A 上?也就是说,我喜欢将所有 500 个“output_”文件存储在节点 A 上。
【问题讨论】:
标签: arrays output scheduler slurm sbatch