官方文檔:https://slurm.schedmd.com/
用戶命令cheatsheet:https://slurm.schedmd.com/pdfs/summary.pdf
占用GPU
salloc -n 8 -N 1 --gres=gpu:8 --partition=matrix1
-n
CPU數
-N
節點數
-gres=gpu:8
8個GPU
--partition=matrix1
在集群1
釋放占用的GPU
ctrl+D
啟動批處理腳本
sbatch
查看任務隊列
squeue
一般squeue | grep xxx(查看本集群的等待隊列時一般grep matrix)
幾列依次是:
任務id、集群id、用戶權限、用戶名、任務狀態(R-running,PD-padding),任務已經運行的時間,占用節點數,分配的節點的ip(如果尚未分配節點則顯示任務優先級)
殺死任務
scancel
設置正常輸出
--output
設置錯誤輸出
--error
腳本編寫:
#!/bin/bash ###SBATCH參數以#開頭,非注釋! #SBATCH --job-name=xxxx ###作業名稱 #SBATCH --nodes=1 ###使用節點數量 #SBATCH --ntasks=8 ###總的進程數(CPU核數) #SBATCH --ntasks-per-node=8 ###每個節點的進程數,1個節點此項無需指定 #SBATCH --gres=gpu:8 ###每個節點使用的GPU數量,CPU作業此項此項無需指定 ##SBATCH --mem=10G ###申請預留內存大小,可選項 #SBATCH --partition=matrix1 ###使用的分區,目前有n個集群分區 ##SBATCH --workdir=/share/admin ###作業的工作目錄,輸出log在此路徑 ###此路徑必須是NFS共享目錄 #SBATCH --output=%j.out ###作業錯誤輸出文件,%j代表作業ID #SBATCH --error=%j.err ###作業正確輸出文件 ##SBATCH --begin=12:00 ###作業開始執行時間,默認立即執行,可選項 ##SBATCH --deadline=23:00 ###作業強制終止時間,可選項 ##SBATCH --mail-type=end ###郵件通知類型start/end/failed,end表示作業結束時郵件通知,可選項 ##SBATCH --mail-user=xx@xx ###郵件通知郵箱,可選項 module load xxx ###加載環境 echo -e "JOB NAME:$SLURM_JOB_NAME,Job ID:$SLURM_JOBID,Allocate Nodes:$SLURM_JOB_NODELIST" ###顯示作業名稱,作業ID,使用節點 mpirun caffe train -solver ./solver.prototxt -gpu all -weights ./model1.bin,./model2.bin ###訓練
##mpirun caffe train -solver ./solver.prototxt -gpu all -snapshot ./_iter_3000.solverstate ###finetune
###執行的程序,MPI作業,直接使用mpirun #srun ./test ###執行的程序,普通作業,使用srun