Slurm 数组问题:当时有一个数组可以工作,但超过这个数组就无法输出正确的文件

问题描述 投票:0回答:1

我正在使用 Slurm 运行一些包含输出文件的代码。当我使用

#SBATCH --array=1-10%1
时,代码运行顺利,并且输出文件(例如,#1、#2、#3 等)出现在相应的文件夹中。但是,当使用
#SBATCH --array=1-10%5
时,则不会(例如,仅 #2、#5 和 #6)。你知道这可能是什么吗?

工作代码是:

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --time=24-00:00:00
#SBATCH --mem-per-cpu=5gb
#SBATCH --partition=some_partition
#SBATCH --array=1-10%1

# Print out some information about the running environment
hostname
echo "Starting at $(date)"
echo "Running on hosts: $SLURM_NODELIST"
echo "Running on $SLURM_NNODES nodes."
echo "Running on $SLURM_NPROCS processors."
echo "Current working directory is $(pwd)"

# Export environment variable
export MY_VARIABLE=1234

# Run exec.exe with srun
./exec.exe

echo "Program finished with exit code $? at: $(date)"

更改同时提交的数组数量会导致代码运行不稳定。

arrays slurm
1个回答
0
投票

在不了解

exec.exe
正在做什么的情况下很难准确回答,但是当作业在数组中所有作业共用的目录中写入(临时)文件时,经常会观察到这种行为。

您可以尝试为数组中的每个作业创建一个工作目录,添加以下行:

mkdir $SLURM_ARRAY_TASK_ID && cd $SLURM_ARRAY_TASK_ID

开始之前

exec.exe

© www.soinside.com 2019 - 2024. All rights reserved.