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