【问题标题】:Slurm Array Job: output file on same node possible?Slurm Array Job:可能在同一节点上输出文件?
【发布时间】: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


    【解决方案1】:

    Slurm 不处理输入/输出文件传输,并假设当前工作目录是一个网络文件系统,例如 NFS 最简单的情况。但GlusterFSBeeGFSLustre 是 Slurm 的其他流行选择。

    【讨论】:

      【解决方案2】:

      使用 Epilog 脚本将输出复制回脚本提交的位置,然后将其删除。

      添加到 slurm.conf:

      Epilog=/etc/slurm-llnl/slurm.epilog
      

      slurm.epilog 脚本进行复制(通过 chmod +x 使其可执行):

      #!/bin/bash
      
      userId=`scontrol show job ${SLURM_JOB_ID} | grep -i UserId | cut -f2 -d '=' | grep -i -o ^[^\(]*`
      stdOut=`scontrol show job ${SLURM_JOB_ID} | grep -i StdOut | cut -f2 -d '='`
      stdErr=`scontrol show job ${SLURM_JOB_ID} | grep -i StdErr | cut -f2 -d '='`
      host=`scontrol show job ${SLURM_JOB_ID} | grep -i AllocNode | cut -f3 -d '=' | cut -f1 -d ':'`
      hostDir=`scontrol show job ${SLURM_JOB_ID} | grep -i Command | cut -f2 -d '=' | xargs dirname`
      hostPath=$host:$hostDir/
      
      runuser -l $userId -c "scp $stdOut $stdErr $hostPath"
      rm -rf $stdOut
      rm -rf $stdErr
      

      (从 PBS 切换到没有 NFS 或类似共享目录的 Slurm 很痛苦。)

      【讨论】:

        猜你喜欢
        • 2019-12-03
        • 1970-01-01
        • 2017-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多