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

问题描述

在带有 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 只会向您显示在登录节点上运行的进程,您不会看到您提交的进程,除非您的集群只有一个节点恰好也是登录节点。