Cuda
如何為 CUDA 設備設置 SGE?
我目前面臨將 GPU 伺服器集成到現有 SGE 環境中的問題。使用Google,我發現了一些已經設置的集群範例,但沒有關於如何完成的資訊。
是否有某種形式的操作指南或教程?它不必非常冗長,但它應該包含足夠的資訊來啟動和執行“cuda 隊列”……
提前致謝…
編輯:要設置一個關於節點中有多少 GPU 空閒的負載感測器,我做了以下操作:
- 將 GPU 的計算模式設置為獨占
- 將 GPU 設置為持久模式
- 將以下腳本作為負載感測器添加到集群配置中(並將其設置為 1 秒。)
#!/bin/sh 主機名=`uname -n` 而[1];做 讀取輸入 結果=$? 如果 [ $result != 0 ]; 然後 1號出口 是 如果 [ "$input" == "退出" ]; 然後 出口 0 是 smitool=`哪個nvidia-smi` 結果=$? 如果 [ $result != 0 ]; 然後 gpusav = 0 顯卡=0 別的 gpustotal=`nvidia-smi -L|wc -l` gpusused=`nvidia-smi |grep "程序名稱" -A 6|grep -v +-|grep -v \|=|grep -v 用法|grep -v "沒有執行"|wc -l` gpusavail=`echo $gpustotal-$gpusused|bc` 是 迴聲開始 echo "$hostname:gpu:$gpusavail" 迴聲結束 完畢 出口 0
注意:這顯然只適用於 NVIDIA GPU
該策略實際上相當簡單。
使用
qconf -mc
您可以創建一個名為gpu
(或您希望命名的任何名稱)的複雜資源。資源定義應類似於:#name shortcut type relop requestable consumable default urgency #---------------------------------------------------------------------------------------------- gpu gpu INT <= YES YES 0 0
然後,您應該編輯您的 exec 主機定義,
qconf -me
以設置擁有它們的 exec 主機上的 GPU 數量:hostname node001 load_scaling NONE complex_values gpu=2 user_lists NONE xuser_lists NONE projects NONE xprojects NONE usage_scaling NONE report_variables NONE
現在您已經設置了您的 exec 主機,您可以在送出作業時請求 gpu 資源。例如:
qsub -l gpu=1
gridengine 將跟踪有多少 GPU 可用。如果每個使用 GPU 的節點執行多個作業,您可能希望將 GPU 置於獨占模式。您可以使用該
nvidia-smi
實用程序執行此操作。