摘 "要 "應用強化學習算法優化超算系統資源管理和配置,核心是通過設計合理的獎勵函數、定義狀態和動作空間,實現智能算法并根據系統狀態靈活選擇資源分配策略,提高超算系統資源使用效率和產出比。實驗結果表明,基于強化學習算法在不同負載和狀態下可以顯著提高資源利用效率,強化學習的靈活性和自適應性可以為超算系統資源管理提供智能化解決方案。
關鍵詞 "高校;超算系統;強化學習算法;資源管理;機器學習
中圖分類號:G647 " "文獻標識碼:B
文章編號:1671-489X(2024)12-0032-06
0 "引言
隨著我國在高校科研平臺投入的不斷增加,高校超算系統普及加快,對于支撐教學、科研和實驗發揮著重要作用。高校超算系統通常具備大規模的計算和存儲資源,有效管理和調度這些資源可以提高計算資源的利用率,確保不同研究項目和任務能夠及時得到滿足,提升科研效率。超算系統的分布式計算可以支持多樣化的科研需求,高校涉及廣泛的學科領域和科研項目,每個項目對計算資源的需求和策略不同,資源管理需要能夠靈活地應對各種不同類型的科研需求,確保資源的合理分配和調度,滿足各個學科領域的科研需求。超算系統作為高校科研基礎設施的核心組成部分,需要提供穩定可靠、高效快速的服務。資源管理的挑戰在于平衡各個任務之間的優先級,合理分配計算資源,確保任務能夠在最短的時間內得到滿足,并保證計算過程的穩定性。
1 "研究背景和研究目的
1.1 "研究背景
當前,超算系統的大規模并行計算和資源管理面臨多項挑戰。高校超算系統通常指大規模并行計算集群,管理和調度這些集群中的節點和任務是一項復雜的任務。資源管理需要考慮節點間的通信和數據傳輸,避免資源沖突和競爭,同時,最大限度地提高并行計算的效率。此外,高校超算系統的建設和運維成本較高,需要投入大量的人力成本,有效的資源管理可以控制成本,提高資源的利用效率。通過合理的資源分配和調度,減少閑置資源、降低能耗和維護成本、提高超算系統的經濟效益是必
要的。
高校超算系統資源管理的重要性在于提高計算資源的利用率、支持多樣化的科研需求、提供穩定高效的服務、解決大規模并行計算問題以及管理和控制成本。優化高校超算系統資源管理是一項具有重要意義的任務。高校超算系統資源管理的挑戰在于平衡不同科研項目的需求、解決大規模并行計算的復雜性、提高資源利用效率和降低成本。我國高校超算中心存在管理經費不足、管理人員較少、缺少環境安全維護人員等難題,這些難題給高校超算系統的管理帶來很大挑戰。高校超算系統的建設和運維需要大量的資金投入,包括硬件設備、軟件許可、能耗成本、維護費用等。由于財政預算限制或其他因素,有些高校的超算系統建設面臨經費不足的問題,導致難以更新設備和保持系統的競爭力。超算系統需要專業的管理人員運行和維護,如硬件維護、軟件安裝配置、任務調度和性能優化等,還需要專職的實驗室安全管理員保障動力環境設備的正常運行,如精密空調、UPS等。由于學校編制縮減,高校中具備相關專業知識和技能的管理人員不足,許多高校的超算系統和實驗室由科研人員兼職管理,一人身兼多職成為高校超算系統實驗室常有現象,嚴重影響了超算系統的穩定性和擴展性,限制了超算系統性能的發揮。
1.2 "研究目的
本研究的目的是在高校超算系統資源管理中應用機器學習中的強化學習算法,自動評價超算系統的效能比,以改善資源利用效率、提高科研效率和降低成本。強化學習算法可以通過學習和優化資源管理策略,提高計算資源的利用率。通過合理的資源分配和調度,減少資源的閑置時間和碎片程度,充分利用計算資源,最大化提高超算系統的整體性能和效率。我國高校超算系統是科研項目進行大規模計算和模擬的重要基礎設施,通過應用強化學習算法,可以優化資源管理策略,提高任務的調度效率和響應速度,督促研究人員更快地獲得計算結果,加快科研進展。不同學科領域和研究項目對計算資源的需求差異較大,基于強化學習算法的評價方法更具靈活性和自適應性,根據不同的科研需求和優先級進行資源分配和調度,滿足各個學科領域的科研要求,提供個性化的支持服務。
高校超算系統包含大規模并行計算集群,管理和調度這些集群中的節點和任務是一項復雜的任務,強化學習算法可以考慮節點間的通信和數據傳輸,優化任務調度策略,提高并行計算的效率和吞吐量,解決大規模并行計算問題。強化學習算法可以通過合理的資源管理和調度,減少資源的閑置和能耗,降低超算系統的運維成本,提高超算系統的經濟效益和使用壽命。
因此,在高校超算系統資源管理中應用強化學習算法,可以提高計算資源利用效率、優化科研效率、支持多樣化的科研需求、解決大規模并行計算問題以及降低成本和能耗,為高校提供更高效、靈活和經濟可行的資源管理方案,具有重要的意義。
2 "相關工作
2.1 "超算系統資源管理方法現狀
當前超算系統資源管理方法主要包括傳統管理方法和基于機器學習的管理方法。
2.1.1 "傳統管理方法
傳統管理方法仍占主流,包括以下五種常用干預策略。
1)人工管理。人工管理是最基礎的資源管理方法,通過人工干預和手動調度分配超算系統的計算資源。這種方法需要管理員根據任務的需求和優先級進行資源分配和調度,具有一定的靈活性和可控性。但是,人工管理方法的效率受限于人工干預和主觀判斷,無法客觀地應對大規模任務和復雜的資源利用情況[1]。
2)先到先得。先到先得是一種簡單的資源分配規則,即根據任務提交的順序分配計算資源,先提交的任務會被優先分配資源,后提交的任務則需要等待。這種方法的優點是簡單且公平,缺點是無法根據任務的需求和系統的負載進行動態調整,容易產生資源碎片[2]。
3)公平分享。公平分享是一種資源分配策略,通過公平地分享計算資源滿足任務的需求。根據任務的權重或優先級,將資源按比例分配給各個任務,以實現公平性和均衡性。公平分享方法可以確保每個任務都能夠獲得一定的資源,但無法最大化資源的利用效率[3]。
4)隊列調度。隊列調度根據任務的優先級和資源需求,將任務排入隊列并按照一定的策略進行
調度。常見的隊列調度算法包括先進先出(First-
In-First-Out,FIFO)、最短作業優先(Shortest-
Job-First,SJF)、公平分享等。隊列調度可以根
據任務的特性和資源的限制進行靈活的調度,但
無法適應動態的任務需求和系統狀態變化[4-5]。
5)動態資源分配。動態資源分配是根據任務的需求和系統的負載實時進行資源分配與調整。通過監測系統負載情況、任務優先級和資源需求等因素,可以更加靈活地分配計算資源,以滿足不同任務的需求。這種方法可以提高資源的利用效率和整體性能,但需要一定資源管理算法和策略的
支持[6-7]。
綜合考慮任務的需求、資源的限制和系統的負載情況,選擇合適的資源管理方法實現超算系統的高效利用。不同的資源管理方法可以單獨應用或結合在一起,以滿足特定的需求和目標。但是,以上資源管理方法多依賴人工管理,主觀、低效,容易造成資源分配不均衡,導致隊列調度延遲。
2.1.2 "基于機器學習的管理方法
機器學習是當前進行特征提取的有效方法,可以自動地進行任務調度和管理。當前基于機器學習算法的資源管理方法主要有基于深度學習的資源管理[8-9]、基于監督學習的資源管理[10-11]和基于遺傳算法的資源管理[12-13]。但是基于機器學習的超算系統資源管理方法的研究仍不太成熟,還在不斷發展。強化學習是機器學習的一種,通過一定的獎懲機制可以更加高效地提高資源利用效率。利用強化學習進行資源管理的優勢在于它能夠根據實時環境反饋和獎勵信號,自主學習和優化資源分配策略,適應動態的任務需求和系統狀態變化,從而提高資源利用效率和整體性能。此外,強化學習還具有靈活性和自適應性等特點,可以根據不同的科研需求和優先級進行資源調度,提供個性化服務。
2.2 "強化學習算法
強化學習算法是機器學習的一種類別,主要包括基于模型(model-based)的方法和非模型(model-
free)的方法,由于在實施過程中模型很難獲得,因此非模型的方法是強化學習當前的主流方法。非模型的方法主要包括基于價值(value-based)的方法、基于策略(policy-based)的方法和混合方法。本文采用的強化學習算法為最近鄰策略優化(Proximal Policy Optimization,PPO)算法,是一種策略梯度方法,是一種基于策略的方法,本質上是一種優化問題,訓練的目標是最大化獎勵
分數。
2.2.1 "策略梯度算法
策略梯度算法的步驟是:在一次隨機學習過程中,策略π首先接受狀態st(t時刻的狀態,是確定性的),輸出動作概率分布at(t時刻的隨機動作,是隨機性的),在動作概率分布中采樣動作,執行動作,得到回報rt(t時刻的回報,是隨機性的),跳到下一個狀態st+1。按照這種步驟不斷迭代,可以使用策略π收集一批樣本,然后使用梯度上升算法學習這些樣本,以獲得最大的回報。梯度上升算法如公式(1)所示:
該算法的不足之處是當策略π的參數更新后,這些樣本不能繼續被使用,還要重新使用策略π與環境互動收集數據,因此,該方法耗時且昂貴。為解決這個問題,PPO算法使用重要性采樣算法,使這些樣本可以被重復使用。
2.2.2 "PPO算法
重要性采樣的思想是當從一個復雜的分布采樣很困難時,可以從另一個容易采樣的分布中采樣,但是這兩個分布不同,需要把易采樣方法得到的樣本做修正。PPO算法就是把重采樣思想應用到策略梯度算法中,首先用策略π和環境互動收集到一批數據,再使用策略π去學習這些數據并更新策略π為π′,然后使用π′去和環境互動,但收集到的數據與π收集到的數據不同,因此不能使用π′去學習這批數據。但是,如果使用π′去學習,更新策略梯度就需要修正這批數據,如公式(2)所示。
從公式(2)中可以看出,PPO算法的梯度更新公式多乘了修正項,其中分子是當前策略,分母是采樣策略。也就是說,當使用采樣策略采集一批數據,用策略π去學習,當策略π發生改變時,只需用修正項修正即可。但是在實際應用中,采樣策略也是要被更新的,一般每隔一個輪次更新一次采樣策略。
3 "強化學習算法在超算系統資源管理中的應用
3.1 "問題建模
使用PPO算法優化超算系統的資源利用,提高超算系統利用效率,將超算系統資源管理問題形式化為強化學習算法,可以按照以下步驟實施。
1)確定狀態空間和動作空間。先明確定義超算系統資源利用的狀態和動作分布。狀態包括當前系統的負載情況、資源利用率、任務排隊情況等信息,動作是資源分配的決策,如分配給不同任務的計算節點數量或處理器核心數量等。
2)構建強化學習環境。基于確定的狀態空間和動作空間,構建一個適用于PPO算法的強化學習環境。該環境應該提供狀態的觀測、執行動作的接口以及計算獎勵的機制。同時,系統環境還需要定義獎勵函數,以引導學習優化資源利用策略。
3)設計神經網絡模型。為了實現PPO算法,需要設計一個神經網絡模型表示策略函數。這個策略函數可以接受狀態作為輸入,并輸出動作的概率分布。本研究采用的神經網絡模型是卷積神經網
絡等。
4)定義目標函數。在PPO算法中,使用一個目標函數衡量策略的性能。常見的目標函數包括優勢函數和策略價值函數,這些函數可以通過比較當前策略和之前策略的性能計算梯度并更新網絡
參數。
5)訓練PPO算法。使用構建的強化學習環境、神經網絡模型和目標函數,開始運行PPO算法進行訓練。訓練過程中,與環境交互,收集狀態、執行動作并獲得獎勵。然后,根據收集到的數據計算目標函數的梯度,并使用梯度上升方法更新神經網絡的參數。
6)調優和評估。訓練完成后,對于超算系統的資源利用策略進行調優和評估。可以使用訓練得到的策略指導超算系統的資源分配和調度,觀察超算系統在實際應用中的效果和性能。
需要注意的是,在實施PPO算法之前,應先研究超算系統的特點、資源管理的需求和限制,以確保設計的狀態表示、動作選擇和獎勵函數能夠合理地反映超算系統的實際情況。此外,需要仔細選擇神經網絡模型的結構和超參數,并進行充分訓練和調優。
3.2 "狀態表示和動作空間
超算系統資源狀態可以采用一組特征向量來描述,這些特征向量可以包括系統負載(核數或節點數、內存、存儲的占用情況)、任務隊列(當前排隊等待執行的任務數量和優先級)、資源預留情況(已經分配給任務的資源數量和類型)、系統性能(超算系統的性能指標,如處理器速度、帶寬等)和任務特性(任務的類型、運行時間預測、優先級等信息)。每個分狀態是一幅圖片,通過卷積神經網絡獲得每個分狀態的特征向量,然后聚合在一起表示當前資源使用狀態的特征。
可執行的動作指超算系統的資源分配和任務調度決策。動作空間包括資源分配(指定給任務的計算節點數量、處理器核心數量等)、任務調度(決定任務的執行順序,如使用先進先出或優先級調度算法等)和任務終止(終止某個任務的執行,以釋放資源)。
通過將超算系統的資源狀態表示為特征向量,并定義可執行的動作空間,可以將超算系統資源管理問題轉化為一個強化學習問題。在強化學習框架下,智能代理可以根據當前狀態選擇執行動作和環境的反饋(獎勵或懲罰)以不斷學習與優化資源分配和調度策略,從而實現更高效的超算系統資源
管理。
3.3 "獎勵設計
設計獎勵函數是強化學習中至關重要的一步,將影響智能代理在資源管理中的決策和學習。一個合理的獎勵函數可以引導代理向著期望的目標不斷優化,而不合理的獎勵函數可能導致學習過程不穩定或得到不理想的結果。在資源管理問題中,設計獎勵函數需要考慮以下幾個因素。
1)系統性能。獎勵函數應該考慮超算系統的整體性能,如任務完成時間、資源利用率和響應時間等指標。代理應該給予在合理時間內完成且高效利用資源的任務以正向獎勵。
2)資源利用率。鼓勵代理合理分配和利用資源,避免資源的浪費。可以設置獎勵機制,使代理在資源使用高效的情況下獲得正向獎勵,同時對資源浪費進行懲罰。
3)任務優先級。如果任務具有不同的優先級,可以設置獎勵函數來優先處理高優先級任務,以提高系統的響應能力和服務質量。
4)長期回報:資源管理是一個長期決策過程,因此,獎勵函數應考慮未來的長期回報。代理的決策可能會影響后續任務的執行和系統性能,因此,獎勵函數應該考慮長期收益而不應該僅僅考慮短期獎勵。
設計獎勵函數是一個復雜而關鍵的任務,通常需要根據具體問題的需求和場景進行調整和優化。一個好的獎勵函數應該能夠平衡不同的目標,并引導代理朝著預期的資源管理優化方向前進。
3.4 "算法設計
本小節主要介紹用于超算系統自動資源管理的強化學習算法。該算法的輸入包括超算系統資源管理環境,神經網絡策略函數,值函數估計函數,優化超參數。其中,資源管理環境指不同情景下用戶提交的當前任務界面、內存占用狀態和存儲占用情況等,可設計為三張圖片,神經網絡策略函數的狀態設計成一個分類問題,離散狀態包括好、中、差,初始值函數值全部設置為零。具體的執行過程如表1所示。
在實際應用中,還需要根據具體情況進行調優和改進,如設置合適的學習率和剪切參數、確定獎勵函數和狀態表示方式、適配超算系統資源管理的特定需求。
3.5 "實驗結果
3.5.1 "實驗設置
本研究是在北京師范大學地理學部全球變化與地球科學研究院神威4000L超算系統中開展實驗。該系統包括68個雙路節點,每個節點包含20個核,計算網絡帶寬80 GB,用戶超過100個,峰值提交任務20,占用核數區間1~20,使用Slurm進行任務調度核資源分配,用戶主要使用氣候模式(如CESM)模擬某些地區的氣候氣象變化。
此外,本文采用綜合評估指標,包括任務完成時間(任務從提交到完成所需的時間,包括排隊等待時間和執行時間)、資源利用率(超算系統資源的利用效率,即資源的平均利用率或總體利用率)、響應時間(系統對任務請求的響應速度,通常用平均響應時間或平均排隊等待時間來衡量)、能效比(完成任務所消耗的能量與任務完成時間的比率,用于評估資源利用的能源效率)和隊列長度(任務隊列中等待執行的任務數量,用于評估任務調度的效率和負載均衡性能),每個指標占比為20%。
3.5.2 "實驗結果與分析
由于超算系統用戶較多,北京師范大學的超算系統用戶數量超過100個,不同用戶提交的任務性質差異大,因此該強化學習算法是在管理員的干預下實施的。各種實驗評價指標之間是相互影響的,為了方便計算算法的有效性,筆者認為指標之間是獨立的。
建設超算系統的目的是服務所有用戶準確高效地完成各項科研任務,首先是面向所有用戶,而不是特定的幾個人;其次是高效,表現在三個方面。
1)節約所有用戶所有任務的完成時間,由于超算系統資源有限,任務排隊現象不可避免,使用強化學習算法的目的是自動節約隊列中所有任務的完成時間。
2)提高資源利用率。各種任務運行所需要的資源數不同,容易產生資源碎片,利用強化學習算法可以有效地提高資源利用率,使得資源利用率達到85%以上。
3)優化優先級規則。常規的任務優先級規則是先到先得,資源對所有用戶的所有任務都是公平開放的,這種規則同樣容易產生碎片,使用強化學習算法可以減少碎片的產生,結合人工管理方法可以使資源利用率達到92%。
4 "結束語
本研究在超算系統資源管理中引入強化學習算法,設計合理的獎勵函數,以優化資源分配策略。通過定義狀態和動作空間,能夠根據系統當前狀態智能選擇動作。實驗結果顯示,基于強化學習的算法在不同負載和狀態下表現出更好的資源利用率和更快的任務完成時間。強化學習算法具有靈活性和自適應性,能夠實時調整資源分配,適應復雜的超算系統環境。該研究為超算資源管理提供了智能化解決方案,未來可進一步優化獎勵函數和算法,推動超算系統資源管理發展。
本研究在超算系統資源管理方面貢獻了基于強化學習的智能化資源分配策略,提高了資源利用效率,節約了任務完成時間。然而,由于超算系統復雜性和規模的限制,獎勵函數的設計和算法魯棒性仍需進一步優化。未來研究優化獎勵函數、改進強化學習算法,融合多智能代理,以實現更智能、高效的超算系統資源管理。
5 "參考文獻
[1] Krauter K, Buyya R, Maheswaran M. A taxonomy and
survey of grid resource management systems for distributed computing[J].Software: Practice and Experience,2002,32(2):135-164.
[2] Lawson B G, Smirni E. Multiple-queue backfilling scheduling with priorities and reservations for parallel systems[J].ACM SIGMETRICS Performance Evaluation Review,2002,29(4):40-47.
[3] Bhatia M K. Task scheduling in grid computing: A
review[J].Advances in Computational Sciences and
Technology,2017,10(6):1707-1714.
[4] Ghosh T K, Das S, Barman S, et al. Job sche-duling in computational grid based on an improved cuckoo search method[J].International Journal of Computer Applications in Techno-logy,2017,55(2):138-146.
[5] Abawajy J H. An efficient adaptive scheduling policy for high-performance computing[J].Future Generation Computer Systems,2009,25(3):364-370.
[6] Haji L M, Zeebaree S, Ahmed O M, et al. Dynamic resource allocation for distributed systems and
cloud computing[J].TEST Engineering amp; Manage-ment,2020,83:22417-22426.
[7] Ismail L, Fardoun A. Eats: Energy-aware tasks scheduling in cloud computing systems[J]. Pro-cedia Computer Science,2016,83:870-877.
[8] Rogova G L, Scott P, Lollett C. Distributed Fusion: Learning in multi-agent systems for time
critical decision making[J].Data Fusion for Si-tuation Monitoring, Incident Detection, Alert and
Response Management,2005,198:104-128.
[9] Li J, Pang D, Zheng Y, et al. A flexible manufacturing assembly system with deep rein-forcement learning[J].Control Engineering Prac-tice,2022,118:104957.
[10] Zhang J, Xie N, Zhang X, et al. Machine Learning Based Resource Allocation of Cloud Computing in Auction[J].Computers Materials amp; Continua,2018,56(1):123-135.
[11] Braiki K, Youssef H. Resource management in cloud data centers: a survey[R]//2019 15th international wireless communications amp; mobile computing conference (IWCMC).IEEE,2019:1007-1012.
[12] Ar?k O A, Toksar? M D. A genetic algorithm approach to parallel machine scheduling pro-blems under effects of positiondependent learn-ing and linear deterioration: Genetic algorithm to parallel machine scheduling problems[J].International Journal of Applied Metaheuristic Computing (IJAMC),2021,12(3):195-211.
[13] Ahmad S G, Liew C S, Munir E U, et al. A hybrid genetic algorithm for optimization of sche-duling workflow applications in heterogeneous computing systems[J].Journal of Parallel and Distributed Computing,2016,87:80-90.