繁体   English   中英

在 Slurm 中运行 Python 个脚本

[英]Running Python scripts in Slurm

我最近开始了一份新工作,需要通过 Slurm 在 HPC 上运行一些脚本。

我的脚本是用 Python 编写的,因此我想在我的.slurm文件中使用python script.py来执行这些脚本。

但是,当我尝试运行.slurm文件时,它似乎无法调用 python 脚本。 我尝试使用module load anaconda3及其变体(例如module load python等)加载 python 环境。 附件是我的array.slurm文件,供参考(.slurm 文件) 为了匿名上传,我已经将帐户和邮件用户留空,但是当我运行脚本时我有这些。

Slurm 的错误文件 output 指示以下内容:

/var/spool/slurmd/job220829/slurm_script: line 19: module: command not found

有人可以提供实用指导吗? 我需要尽快运行这些 Python 脚本。

正如md2perpe提到的,每个 HPC 系统都是不同的。 他们在某种程度上定制了 slurm 调度程序。 仍然有许多 HPC 共享相同的基本命令。

例如,这是我创建的作业提交脚本,用于在 GPU 节点上运行 python 文件。

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --time=00:00:40
#SBATCH --ntasks=1
#SBATCH --job-name=gpu_check
#SBATCH --output=gpu.%j.out
#SBATCH --error=gpu.%j.err
#SBATCH --gres=gpu:1
#SBATCH --account=scw1901
#SBATCH --partition=accel_ai

module load anaconda/3
source activate base
python gpu.py

我可以给你以下建议:

  • 加载 anaconda 模块后,您应该激活 conda 虚拟环境。 例如, source activate base 要查看可用的 conda 环境列表,请键入此conda env list 然后激活您选择的 conda 环境。
  • 我不知道你的 python 脚本是什么,所以不能真正评论你使用的参数。
  • 确保您有权访问该分区。 查看分区类型sinfo的列表。 还要检查 state。如果它被drainreserved ,那么您根本无法使用该分区。
  • 也许您可以在没有--ntasks-per-nodes--array的情况下运行您的脚本。 为什么不试试我的工作脚本?
  • 如果没有任何效果,请将错误文件的 output 粘贴到您的问题中。 在我的例子中, JOBID是由%J而不是%a定义的,就像你的例子一样。
  • 你可以删除那些 email arguments --mail如果你不需要它。
  • 什么是SLURM_ARRAY_TASK_ID 如果您不知道,请将其删除。
  • 你说你没有module命令。 错误在第 19 行。但是您在第 18 行使用了模块命令。您确定共享的作业脚本正确吗?
  • 你能在登录节点运行module load anaconda/3吗? 只需在 SSHing 后复制并粘贴即可。 如果是,则module可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM