1

我正在运行以下内容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
4

1 回答 1

1

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

但是,如果您改用它,您可以这样做singularity instance start some_instance_name。之后,您可以使用singularity shellsingularity exec访问与正在运行的作业相同的环境。文档中提供了更多详细信息

于 2019-11-26T08:32:37.180 回答