簡體   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