繁体   English   中英

如何在 slurm 上获得相同类型的多个 GPU?

[英]How to get multi GPUs same type on slurm?

如何使用相同类型但不直接指定该类型的多 GPU 创建作业? 我的实验有一个约束,即所有 GPU 都具有相同的类型,但这种类型可以是我们想要的任何类型。

目前,我只能用多 GPU 创建一个实验,并准确说明我想要什么类型:

--gres=gpu:gres_type:amount

如果我不指定gres_type ,那么有时我会得到混合 GPU 包(比如说 2x titan V 和 2x titan X)。

如果您足够幸运,集群在托管 GPU 的节点类型上是一致的,并且节点的features被正确指定并允许区分托管不同 GPU 类型的节点,您可以使用--constraint范围。

为了论证的方便,我们假设托管titanX的节点具有skylake CPU,托管titanV的节点具有haswell CPU,并且这些都被定义为特征。 然后,您可以要求

--gres=gpu:2
--constraint=[haswell|skylake]

如果以上不适用于您的用例,您可以提交两个作业并仅保留最早开始的作业。 为此,给你的工作一个相同的名称,并使用singleton依赖项。

像这样写一个提交脚本

#!/bin/bash
#SBATCH --dependency=singleton 
#SBATCH --job-name=gpujob
# Other options

scancel --state=PENDING --jobname=gpujob

# etc.

并提交两次

$ sbatch --gres=gpu:titanX:2 submit.sh
$ sbatch --gres=gpu:titanV:2 submit.sh

每个作业将仅分配一种类型的 GPU,第一个启动的将取消另一个。 这种方法可以通过两个以上的 GPU 类型进行扩展。

暂无
暂无

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

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