# Slurm常用指令與參數 :::success 下表為Slurm常用之指令: <tr> <td></td> <td></td> </tr> <table> <tr> <td>指令</td> <td>功能說明</td> </tr> <tr> <td>sinfo</td> <td>查詢佇列(Partitiond)清單與節點狀態 </td> </tr> <tr> <td>squeue</td> <td > 查詢已提交的Job狀態</td> </tr> <tr> <td>sbatch</td> <td>(建議) 以batch方式提交Job,適合多節點運算。<br>必須指定--account=<PROJECT_ID></br></td> </tr> <tr> <td> srun</td> <td> 提交Job,直接執行指令且需等待指令執行完成,適合需即時查看輸出的程式除錯工作。 <br>在sbatch腳本或salloc shell中,代表一個工作步驟(Job Step)。</br> </td> </tr> <tr> <td>salloc</td> <td>提交互動式Job,自動產生一個Shell,離開Shell後Job將自動終止,亦可直接登入Job分配的計算節點,適合用於計算程式開發與除錯工作。 <br>必須指定 --account=<PROJECT_ID></PROJECT_ID></br> </td> </tr> <tr> <td>squeue</td> <td>查詢已提交的Job狀態</td> </tr> <tr> <td>scontrol</td> <td>查詢執行中Job的詳細資訊,如CPU、Memory與節點分配數量</td> </tr> <tr> <td>scancel</td> <td>停止Job</td> </tr> <tr> <td>sacct</td> <td>列出帳號以往執行過的Job與Job steps。若沒指定時間,預設查詢過去24小時的Job清單。</td> </tr> </table> <font color="#f00"> 備註: 萬一登入節點當機時,若原本使用 ==srun==或是==salloc== 指令提交 job,可能會造成計算中斷或資料遺失,因此除了除錯或開發用途之外,建議先編輯好job script,然後使用 ==sbatch== 指令提交計算工作。 </font> ::: ### sinfo | 指令參數 | 說明 | |-|-| | sinfo | 查看partition與節點資訊 | | sinfo --states=idle | 查看可用(idle)節點資訊 | | sinfo --partition=<partition> | 查看特定partition資訊 | | sinfo -N -l | 查詢節點狀態 | | sinfo --help | 查看所有選項 | ### squeue | 指令參數 | 說明 | |-|-| | squeue | 查看已提交的Job狀態資訊 | | squeue -j <job_id> | 查看特定Job資訊 | | squeue -l | 查看細節資訊 | | squeue --state=<state> | 查看特定狀態的Job。常用的state有:R(Running)、PD(Pending) | | squeue --help | 查看所有的選項 | <!--- :::info 補充說明 派送job過程中,常見的PENDING的情況,可以去查詢官方網址查詢原因。 [官網_job_reason_codes](https://slurm.schedmd.com/job_reason_codes.html) `[user@cbi-lgn01 ~]$ squeue -u user` `JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)` `8260 normal singular user PD 0:00 2 (MaxGRESPerAccount) ` (MaxGRESPerAccount):這通常與資源限制或配額有關。 ::: ---> ### scontrol | 指令參數 | 說明 | |-|-| | scontrol show job <job_id> | 查看排隊或正在運行的Job詳細資訊 | | scontrol show node <node> | 查看計算節點可用資源規格 | ### scancel | 指令參數 | 說明 | |-|-| | scancel <job_id> | 刪除Job | | scancel -i -u $UID | 互動式詢問刪除用戶自己的Job | ### sacct | 指令參數 | 說明 | |-|-| | sacct | 列出過去24小時內結束的Job清單 | | sacct -j <job_id> | 列出指定的已結束Job | | sacct --starttime $(date -d "7 days ago" +%Y-%m-%d) | 列出過去7天內結束的Job清單 | | sacct --help | 查看所有的選項 |