2. 架構
3. 命令
3.1 sacct
3.2 sattach
3.4 sbatch
3.5 sbcast
3.6 scancel
3.7 scontrol
3.8 sinfo
3.9 smap
3.10 squeue
3.11 srun
3.12 strigger
3.13 sview
1. 概述
Slurm 是一個開源、容錯、高可伸縮的集群管理和大型小型 Linux 集群作業調度系統。slurm不需要對操作系統內核進行修改,而是相對獨立的。
作為集群工作負載管理器。slurm有三個關鍵功能:
- 首先,它在一段時間內為用戶分配獨占或者非獨占的計算資源,以便他們能夠執行工作任務
- 其次,它能提供一個框架,用於在分配的節點集上啟動,執行,監視工作,通常是並行作業任務
- 最后,它通過管理掛起的工作隊列,來仲裁資源爭奪問題
2. 架構
如下圖2.1所示,slurm構成有:
- 運行在每個計算節點上的slurmd守護進程
- 運行在管理節點上的中央slurmctld守護進程(可選的故障切換節點模式)
用戶命令,包括:sacct,salloc,sattach,sbatch,sbcast,scancel,scontrol,sinfo,smap,squeue,srun,strigger,sviw,sreport等,均可以在集群的任何地方運行。
如下圖所示,由這些 Slurm 守護程序管理的實體,包括:
- 計算資源node
- 計算資源組成的邏輯集partition
- 分配給用戶指定的時間量的資源分配job
- 作業中的一組任務(有可能是並行任務)
這些分區可以被視為作業隊列, 其中每一個都有各種約束, 如作業大小限制、工作時間限制、允許使用它的用戶等。
按照優先級排序的作業,從隊列中分配節點,直至該隊列分資源,如節點,處理器,內存等耗盡。
一旦一個job分配了一組節點后, 用戶就能夠按照任何分配配置,以作業步驟形式啟動並行工作。
例如, 可以啟動一個作業步驟, 利用分配給作業的所有節點, 或者多個作業步驟可以獨立地使用分配的一部分。
3. 命令
在部署了slurm的系統上,slurm daemons,slurm commands,和API functions均可通過幫助選擇查看。
命令選擇--help也能夠提供一個簡潔的功能選項總結。需要注意的是,命令選項都區分大小寫。
3.1 sacct
sacct 用於匯總報告正在活動或者已經結束的job和job step的審計信息。
3.2 sattach
sattach用於input、output和error plus signal功能附加到當前正在運行的作業或作業步驟中。你可以多次連接和分離工作。
3.4 sbatch
sbatch用於提交作業腳本以供以后執行。腳本通常包含一個或多個 srun 命令來啟動並行任務
3.5 sbcast
sbatch用於將文件從本地磁盤傳輸到分配給作業的節點上的本地磁盤。這可用於有效地使用無盤計算節點或提供相對於共享文件系統的改進性能
3.6 scancel
scancel用於取消掛起或正在運行的作業或作業步驟。它還可用於向與正在運行的作業或作業步驟關聯的所有進程發送任意信號。
3.7 scontrol
scontrol是用於查看和/或修改 Slurm 狀態的管理工具。請注意, 許多 scontrol 命令只能作為用戶根執行。
3.8 sinfo
sinfo報告由 Slurm 管理的分區和節點的狀態。它具有多種篩選、排序和格式設置選項。
3.9 smap
smap報告由 Slurm 管理的作業、分區和節點的狀態信息, 但以圖形方式顯示信息以反映網絡拓撲。
3.10 squeue
報告作業或作業步驟的狀態。它具有多種篩選、排序和格式設置選項。
默認情況下, 它以優先級順序報告正在運行的作業, 然后按優先級順序報表掛起的作業。
3.11 srun
用於提交執行任務或實時啟動作業步驟。
srun 有各種各樣的選項來指定資源需求, 包括: 最小和最大節點數、處理器計數、要使用或不使用的特定節點以及特定節點特征 (內存、磁盤空間、某些必需的功能等)。
作業可以包含在作業節點分配中按順序或並行執行的多個作業步驟。
3.12 strigger
strigger用於設置、獲取或查看事件觸發器。事件觸發器包括節點下降或工作接近其時間限制等內容。
3.13 sview
是一個圖形用戶界面, 用於獲取和更新由 Slurm 管理的作業、分區和節點的狀態信息。