- salloc
申請計算節點,然后登錄到申請到的計算節點上運行指令;
salloc的參數與sbatch相同,該部分先介紹一個簡單的使用案例;隨后介紹一個GPU的使用案例;最后介紹一個跨節點使用案例;
首先是一個簡單的例子;
申請一個節點6個核心,并跳轉到該節點上運行程序;
2. Slurm 作業調度系統使用指南
4.1 參數說明以下所有參數在 srun, sbatch, salloc 中均可以使用。更多參數見srun --help, sbatch --help, salloc --help。-c, --cpu-per-task=NCPUs #指定每個進程使用核數,不指定默認為1
-e, --error=error_filename #指定錯誤文件輸出
-J, --job-name=JOBNAME #指定作業名稱
--mail-type=END/FAIL/ALL #郵件提醒,可選:END,FAIL,ALL
--mail-user=mail_address #通知郵箱地址
-n, --ntask=NTASKs #指定總進程數;不使用cpus-per-task,可理解為進程數即為核數
--ntasks-per-node=N #指定每個節點進程數/核數,使用-n參數后變為每個節點最多運行的進程數
-N, --nodes=N #指定節點數量
-o, --output=out_filename #指定輸出文件輸出
-p, --partion=debug #指定分區
-t, --time=dd-hh:mm:ss #作業最大運行時間
-w, --nodelist=node[1,2] #指定優先使用節點,不可與避免節點沖突
-x, --exclude=node[3,5-6] #指定避免使用節點,不可與優先節點沖突
--mem-per-cpu=MB #指定計算cpu最大占用內存大小
4.2 交互模式 Srun
交互式作業提交,提交命令后,等待作業執行完成之后返回命令行窗口。
Demo of srun
srun -J JOBNAME -p debug -N 2 -c 1 -n 32 --ntasks-per-node=16 -w node[3,4] -x node[1,5-6] --time=dd-hh:mm:ss --output=file_name --error=file_name --mail-user=address --mail-type=ALL mpirun -n 64 ./iPic3D ./inputfile/test.inp
同 Demo of sbatch
4.3 批處理模式 Sbatch
批處理作業是指用戶編寫作業腳本,指定資源需求約束,提交后臺執行作業。提交批處理作業的命令為 sbatch,用戶提交命令即返回命令行窗口,但此時作業在進入調度狀態,在資源滿足要求時,分配完計算結點之后,系統將在所分配的第一個計算結點(而不是登錄結點)上加載執行用戶的作業腳本。批處理作業的腳本為一個文本文件,腳本第一行以 “#!” 字符開頭,并制定腳本文件的解釋程序,如 sh,bash。
運行 sbatch filename 來提交任務;計算開始后,工作目錄中會生成以 slurm 開頭的.out 文件為輸出文件(不指定輸出的話)。
Demo of sbatch
保存在運行程序目錄下即可,文件名隨意(可以無后綴,內容文本格式即可);作業提交命令sbatch filename
#!/bin/bash %指定運行shell
#提交單個作業
#SBATCH --job-name=JOBNAME %指定作業名稱
#SBATCH --partition=debug %指定分區
#SBATCH --nodes=2 %指定節點數量
#SBATCH --cpus-per-task=1 %指定每個進程使用核數,不指定默認為1
#SBATCH -n 32 %指定總進程數;不使用cpus-per-task,可理解為進程數即為核數
#SBATCH --ntasks-per-node=16 %指定每個節點進程數/核數,使用-n參數(優先級更高),變為每個節點最多運行的任務數
#SBATCH --nodelist=node[3,4] %指定優先使用節點
#SBATCH --exclude=node[1,5-6] %指定避免使用節點
#SBATCH --time=dd-hh:mm:ss %作業最大運行時長,參考格式填寫
#SBATCH --output=file_name %指定輸出文件輸出
#SBATCH --error=file_name %指定錯誤文件輸出
#SBATCH --mail-type=ALL %郵件提醒,可選:END,FAIL,ALL
#SBATCH --mail-user=address %通知郵箱地址source /public/home/user/.bashrc #導入環境變量文件mpirun -n 32 ./iPic3D ./inputfiles/test.inp #運行命令
同 Demo of srun
4.4 分配模式 Salloc
結點資源搶占命令。該命令支持用戶在提交作業前,搶占所需計算資源(此時開始計算所用機時)。需請求資源,然后在獲取節點后登錄到計算節點。目前作者使用設備可直接登錄計算節點,暫未使用。 sacct 命令也未啟用,暫無說明,有需要可在文末參考網頁查看。
5. Scontrol
5.1 信息查看
scontrol show job JOBID #查看作業的詳細信息
scontrol show node #查看所有節點詳細信息
scontrol show node node-name #查看指定節點詳細信息
scontrol show node | grep CPU #查看各節點cpu狀態
scontrol show node node-name | grep CPU #查看指定節點cpu狀態
5.2 更新作業
在任務開始前卻發現作業的屬性寫錯了(例如提交錯了分區,修改名字),取消了重新排隊似乎很不劃算。如果作業恰好 沒在運行,我們是可以通過 scontrol 命令來更新作業的屬性
scontrol update jobid=JOBID ... #...為下面參數
reqnodelist=<nodes>
reqcores=<count>
name=<name>
nodelist=<nodes>
excnodelist=<nodes>
numcpus=<min_count-max_count>
numnodes=<min_count-max_count>
numtasks=<count>
starttime=yyyy-mm-dd
partition=<name>
timelimit=d-h:m:s
mincpusnode=<count>
minmemorycpu=<megabytes>
minmemorynode=<megabytes>
作業調度系統 · 北京大學高性能計算使用指南
SLURM 使用參考
Slurm 作業調度系統 — 上海交大超算平臺用戶手冊 文檔
SLURM使用基礎教程 - 曙光先進計算
Slurm User Guide for Great Lakes | ITS Advanced Research Computing