Cuda

如何為 CUDA 設備設置 SGE?

  • May 9, 2013

我目前面臨將 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=1gridengine 將跟踪有多少 GPU 可用。

如果每個使用 GPU 的節點執行多個作業,您可能希望將 GPU 置於獨占模式。您可以使用該nvidia-smi實用程序執行此操作。

引用自:https://serverfault.com/questions/322073