![](/img/trans.png)
[英]How to get the ID of GPU allocated to a SLURM job on a multiple GPUs node?
[英]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.