如何通过集群中的 slurm 运行 一个 python 脚本?

How to run a python script through slurm in a cluster?

在带有 slurm 的服务器上配置 jupyter 的正确方法是什么?阅读 docs 后,我正在通过 slurm 执行我的 python 脚本(我不确定这是否有效):

$ srun -n 1 --time=02:00:00 --cpus-per-task=14 --mem=64gb --part=cluster-job --gres=gpu:rtx2080ti:1 python ./src/main.py

然后,我得到:

srun: job 2216877 queued and waiting for resources

当我这样做时:

(base) [user@cluster ~]$ squeue -u user390284

我得到:

JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
2216877 cluster-job   python user390284 PD       0:00      1 (Resources)

这是 运行 我脚本的正确方法吗?当我检查 htop 时,我没有看到任何进程 运行。看来我的进程卡住了。在我的脚本中使用 slurm 的正确方法是什么?

这是在具有 rtx2080ti GPU 的计算节点上请求交互式会话的正确方法。但正如 Slurm 告诉您的那样,您的作业已提交,srun 将阻塞,直到 Slurm 找到 14 个 CPU、64GB 和一个 GPU 可用。在此之前,squeue 会将您的工作显示为待处理 (PD)。

运行 htop只会显示登录节点上的进程运行,你不会看到你提交的进程,除非你的集群只有一个节点恰好是登录节点也是如此。