输入在Slurm作业中运行的奇异容器

时间:2019-11-25 17:04:51

标签: containers slurm singularity-container sbatch

我正在关注job_script.sh

#!/bin/bash

singularity --debug run --app ${APP} \
                             --bind "vol/on/host":"vol/on/container" \
                             ${IMG_DIR}/${IMG_NAME}

使用sbatch命令(它是长时间运行的工作):

sbatch -p ${QUEUE} --qos=${QOS} --job-name ${JOB_NAME} -o ${JOB_NAME}.o%J -e ${JOB_NAME}.e%J job_script.sh

我想要实现的是在正在运行的容器中执行命令,该容器在以下slurm作业中运行:

$ squeue -u $USER
JOBID     ARRAY_TASKPARTITION NAME                                  USER      STATE     NODELIST(REASON) CPUS  NODES TRES_PERSTART_TIME            TIME
7988346   N/A       defq      rstudio                               myuser  RUNNING   nc023            1     1     N/A     2019-11-25T06:23:32   2:38:03

1 个答案:

答案 0 :(得分:1)

使用singularity execsingularity run时,您生成的是单个进程,很遗憾,您无法在与docker run ...相同的上下文中运行其他进程。

但是,如果您使用singularity instance start some_instance_name,则可以执行此操作。之后,您可以使用singularity shellsingularity exec访问与正在运行的作业相同的环境。 More details are available in the documentation