Slurm

派送與排程管理目前是透過slurm這套軟體進行管理

為何需要使用派送與排程管理?

使用派送與排程管理有以下好處

  1. 程序送出後即可登出,不擔心連線中斷

  2. 公平有效分配資源與時間

  3. 便於統計使用量

  4. 可紀錄螢幕輸出與錯誤問題

slurm簡易指令

查看可用資源
$sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
gpu*         up   infinite      1   idle hp-gpu
查看執行或排程中程序
$squeue

提交互動式任務

使用互動式任務的優點是可以立即得到程式的輸出,方便在調整測試階段使用。

申請資源
$salloc

後方可指定使用資源數量。

--cpus-per-task=<使用CPU數量>

--gres=gpu:<使用GPU卡數量>

範例:使用1顆CPU 4張GPU卡
$salloc --cpus-per-task=1 --gres=gpu:4
salloc: Granted job allocation 16

進入互動式任務後便可以開始執行運算。

如有使用環境模組,請在此時開始載入。

如何指定特定的GPU卡運算

可使用環境變數宣告

$export CUDA_VISIBLE_DEVICES=0,1

0,1 代表CUDA可使用的GPU卡僅有第一及第二張卡

或使用module載入

一般使用者使用GPU4ALL此模組

載入GPU4ALL模塊
$module add GPU4ALL

此時將會限制CUDA可使用的GPU卡僅有第4到第8張卡

離開互動式任務
$exit

Screen教學

screen是可以幫助管理登入連線的工具

使用也非常容易

$screen

就可以開啟一個新的session進行工作

中途要離開可以按下

ctrl+a

再按

d

即可恢復原來的session

先前建立的session即使斷線也還會存在

$screen -r

就可恢復