如何在提交到Slurm时激活特定的Python环境?

17

我想在集群上运行一个脚本 (SBATCH文件)。

  1. 如何激活我的虚拟环境 (path/to/env_name/bin/activate)。

  2. 我是否只需要将以下代码添加到my_script.sh文件中?

    module load python/2.7.14 source "/pathto/Python_directory/ENV2.7_new/bin/activate"


1
只需在虚拟环境的“bin”文件夹中运行“python”可执行文件即可。 - Klaus D.
你能更加精确一些吗? - bib
1
我认为@KlausD.建议您运行类似于/path/to/miniconda3/envs/allennlp/bin/python -m allennlp.run --version的命令。 - schmmd
你尝试过使用 #SBATCH --export=ALL 吗? - Charlie Parker
1
请问您能否提供一个完整的解决方案示例呢? - Kaleb Coberly
2个回答

18

您是指在提交到 Slurm 时激活特定的 Python 环境吗?这是我在作业脚本中添加的内容,它运行得很好。请注意,我使用 Anaconda,默认情况下安装后会将所需路径添加到我的 .bashrc 脚本中。希望这可以帮到您。

....
# define and create a unique scratch directory
SCRATCH_DIRECTORY=/global/work/${USER}/kelp/${SLURM_JOBID}
mkdir -p ${SCRATCH_DIRECTORY}
cd ${SCRATCH_DIRECTORY}

# Activate Anaconda work environment for OpenDrift
source /home/${USER}/.bashrc
source activate MyEnvironment 

# we execute the job and time it
time mpirun python slurmscript.py

如果我的提交脚本是一个Python脚本,该怎么办? - Charlie Parker
你应该能够在我调用mpirun时执行你的Python脚本。此时,Anaconda环境已经设置好了。 - Trond Kristiansen

3

是的。只需要确保在SBATCH ...行之后,python使用之前插入这些行。


1
如果我的提交脚本是Python脚本怎么办?我不能就这样做... - Charlie Parker
1
我该如何在我的 Slurm 集群的所有节点上创建这个环境? - rohit_r
哪几行?你能贴出完整的例子吗? - Kaleb Coberly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接