楊敏 李淑倩 關宇 何蕓 侯波



摘要:集群作業管理系統作為高性能計算領域的核心技術,伴隨著計算機技術的發展進步逐漸成為計算機學科的熱點研究領域。作為集群系統軟件的重要組成部分,集群作業管理系統可以根據用戶的需求,統一管理和調度集群的軟硬件資源,保證用戶作業公平合理地共享集群資源,提高系統利用率和吞吐率。傳統作業管理系統大多需要以命令行的方式進行管理,用戶需要熟練掌握多種調度器命令。Slurm 是一種可用于大型計算節點集群的高度可伸縮和容錯的集群管理器和作業調度系統,被世界范圍內的超級計算機和計算集群廣泛采用。本文以Slurm作業調度器為例,對其體系結構、作業執行過程做了重點研究,重點闡述其在地震處理軟件中的應用。其高效便捷的操作方式,極大提升工作效率,極大程度地優化了集群管理工作。
關鍵詞:Slurm;高性能計算;作業調度系統
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)36-0153-02
開放科學(資源服務)標識碼(OSID):
1 引言
新疆油田公司地球物理研究所主要業務是地震資料處理解釋勘探研究,同時也是高性能計算中心。油氣地震勘探研究是利用高性能計算機的數據處理能力對野外收集的原始資料進行各種去粗取精、去偽存真的數據處理加工工作。隨著地震勘探技術進步,特別是近幾年油氣勘探地質目標逐步轉向“低、深、隱、難”的小斷裂和薄儲層識別,野外高密度寬方位地震采集技術逐步推廣,采集的地震資料數據量動輒幾十TB甚至上百TB,數據體規模越來越大,數據類型繁雜,數據結構復雜,地震勘探研究邁進大數據時代隨著油氣地震勘探工作難度的日益增大,引進以密集計算為特征的新的地震資料處理方法和運行平臺HPC集群,來滿足復雜地質目標研究需求。我所建成了一套計算規模9000多核CPU+GPU異構集群,每秒354.55Tflops萬億次浮點運算的理論處理能力,為油田公司資料數據處理提供了有力保障。主要應用于Paradigm2011處理系統、CGGVeritas Geovation處理系統、Geoeast處理解釋一體化平臺、AGT逆時偏移軟件、Lightning疊前偏移軟件。集群節點應用層面,地震資料處理過程中的常規處理工作依舊通過CPU節點進行,地震疊前逆時偏移等高精度成像技術由于計算量巨大,通過CPU/GPU節點的協同進行數據并行計算。這么大規模的集群存儲節點,集群作業調度系統作為集群系統軟件的重要組成部分,是地震勘探處理軟件的核心內容。用戶自定義集群分組信息,作業在分組計算節點單元按需求運行,Slurm操作界面高效管理和便捷調度,保障用戶作業有序高效進行,共享整個集群計算資源,提高計算節點資源的利用率和吞吐率。Slurm是具備開源、容錯、高可伸縮的集群管理和大型小型 Linux 集群作業調度系統。由60萬行C代碼組成。它不需要對操作系統內核進行修改,而是相對獨立的。Slurm在一段時間內為用戶分配獨占或者非獨占的計算資源節點,按照自定義好的計算資源執行作業任務;其次,它能提供管理功能,用于分配的計算節點集上啟動作業、執行作業、監視計算資源利用情況的功能,常規是并行作業任務;最后,它通過管理掛起的工作隊列,來仲裁資源爭奪問題。
2 Slurm技術架構
處理集群通常有多個用途,安裝多種應用軟件,為多個用戶提供服務、集群用途和系統配置經常調整,日常維護服務體系復雜。集群資源調度難,需要將通用的集群監控調度軟件和集群運維定制開發工具相結合,搭建適用于實際工作環境的集群資源調度管理體系,通過監控收集集群運行數據,支撐集群優化,保障系統高效穩定運行。
Slurm是適應不同計算規模Linux集群的資源管理和調度軟件。它提供高效的資源與作業管理。包括狀態監控、資源管理、作業調度和用量記賬。
Slurm技術架構如下:
1)運行在每個計算節點上的Slurmd守護進程;
2)運行在管理節點上的中央Slurmctld守護進程(可選的故障切換節點模式) 。
它的一個管理控制進程是Slurmctld運行在管理節點,是資源的控制中樞。它負責記錄節點狀態、進行分區作業管理、作業調度和資源分配。記賬存儲進程Slurmdbd也運行在管理節點,它將作業信息保存到數據庫,記錄用戶、賬號、資源限制、QOS等信息,負責用戶認證和安全隔離。節點監控進程Slurmd運行在每個計算節點,監控節點狀態,并向控制進程注冊,接收來自控制進程與用戶的請求并進行處理。作業管理進程Slurmstepd加載計算任務時由節點監控進程啟動,管理一個作業步的所有任務,啟動計算任務進程、標準I/O轉發,信號傳遞和任務控制與資源使用信息收集。
如下圖2所示,由這些 Slurm 守護程序管理的實體,包括:
1)計算資源node;
2)計算資源組成的邏輯集partition;
3)分配給用戶指定的時間量的資源分配job;
4)作業中的一組任務(有可能是并行任務)。
這些分區可以被視為作業隊列, 其中每一個都有各種約束, 如作業大小限制、工作時間限制、允許使用它的用戶等。 按照優先級排序的作業,從隊列中分配節點,直至該隊列分資源,如節點、處理器、內存等耗盡。一旦一個job分配了一組節點后, 用戶就能夠按照任何分配配置,以作業步驟形式啟動并行工作。 例如, 可以啟動一個作業步驟, 利用分配給作業的所有節點, 或者多個作業步驟可以獨立地使用分配的一部分。
作業運行模式分為:交互模式、批處理模式和分配模式。這幾種模式只是用戶使用方式區別,管理、調度和記賬是一樣的模式。交互模式作業yhrun,在終端提交資源分配請求,指定資源數量與限制,等待資源分配,獲得資源后,加載計算任務,運行中,可與任務進行交互,任務結束后資源釋放。批處理模式yhbatch,用戶編寫作業腳本、提交作業、作業排隊等資源分配,分配后,在首節點加載執行作業腳本,腳本運行結束,釋放資源,運行結果定向到指定的文件中記錄。一個作業可使用多個yhrun生成多個作業步。分配模式yhalloc,它的模式是提交資源分配請求,作業排隊等待資源分配,執行用戶指定命令,命令執行結束后,釋放資源。
3 Slurm 在生產中的應用
基于Slurm的高性能集群管理,選定一臺機器作為控制節點,其他機器作為計算節點;獲取到集群中所有計算節點的主機名或IP信息,將集群安裝包和安裝腳本拷貝到各個計算節點;在控制節點上通過SSH服務登錄到各個計算節點,通過安裝腳本完成節點上集群環境的搭建部署;在控制節點部署控制接收進程,用于監控計算資源,接收計算節點發送的信息;在各個計算節點上存在守護進程用來管控集群中的計算節點,定時采集節點狀態以及節點上信息并通過SSH服務發送給控制節點;對計算節點及冗余備份節點進行協同管理;基于Slurm作業管理機制和節點狀態監控進程,依據集群系統資源的當前狀況對隊列中的作業進行部署、監控和分配操作。
筆者單位共64個節點,建立了7組隊列,每個隊列節點不一,同時并發執行,Slurm管理查看界面分為工作列表、分區列表、節點情況等,故障點標紅宜排查,能夠實時監測查看隊列作業執行情況,管理操作高效簡潔。
4 結論
本文從高性能計算集群管理的需求環境背景,到Slurm作業調度系統研究背景、技術架構和應用前景等進行了深入分析闡述。從應用實踐得出,Slurm 是優秀的開源作業調度系統,Slurm 集成度更高,操作管理簡潔,性能穩定且功能強大。
參考文獻:
[1] 張軍華,臧勝濤,單聯瑜,等.高性能計算的發展現狀及趨勢[J].石油地球物理勘探,2010,45(6):918-925,936,791-792.
[2] 段新華,王宏勇,丁汨.集群作業管理系統的關鍵技術分析及比較[J].計算機技術與發展,2009,19(2):87-90.
[3] 薛勇,萬偉,艾建文.高性能地學計算進展[J].世界科技研究與發展,2008,30(3):314-319.
[4] 欒翠菊,宋廣華,鄭耀,等.一種網格并行任務執行時間預測算法[J].計算機集成制造系統,2007,13(9):1805-1810.
[5] 趙宗弟,胡凱,胡建平.基于PBS的集群作業調度策略的設計與實現[J].計算機與數字工程,2006,34(11):123-127.
[6] 羅紅兵,張曉霞,魏勇.大規模并行計算機作業調度評價[J].計算機工程與應用,2006,42(10):79-83.
【通聯編輯:李雅琪】