作業調度管理系統
高性能計算(HPC)是一個計算機集群系統,它通過各種互聯技術將多個計算機系統連線在一起,利用所有被連線系統的綜合計算能力來處理大型計算問題,所以又通常被稱為高性能計算集群。高性能計算方法的基本原理就是將問題分為若干部分,而相連的每台計算機(稱為節點)均可同時參與問題的解決,從而顯著縮短了解決整個問題所需的計算時間。
通常,解決大型計算問題需要功能強大的計算機系統,而現在,隨著高性能計算的出現,使這一類套用從昂貴的大型外部計算機系統演變為採用商用伺服器產品和軟體的高性能計算機集群。因此,高性能計算系統已經成為解決大型問題計算機系統的發展方向。那么,什麼樣的大型問題最適合使用高性能計算系統呢?一般來說,高性能計算是為了實現下列情況下的計算系統:
▪能夠突破性能極限的計算。
▪單個高端計算機系統不能滿足其需求的計算。
▪需要通過專門的程式最佳化最大限度提高系統的I/O、計算和數據傳送性能的計算。
集群控制系統
我們知道,高性能計算系統實際上是一個計算機集群系統,它需要通過通訊和集群控制軟體將整個系統緊密聯繫在一起。同時,還要負責初始化集群節點、在所需數量的節點上安裝應用程式、並監視集群節點和互連的當前運行狀況。目前在市場上有多開放原始碼的集群控制系統,也有許多高性能計算的用戶開發自己的控制系統來適應其特殊的套用軟體的需求。故而集群控制系統就必須具備:
一、高性能計算的互聯技術
高性能計算的互聯技術在整個系統中非常重要,因為一般的高性能計算系統都需要講幾十台甚至幾百台的計算機系統互相連線在一起,互聯繫統的性能有時會直接影響整個高性能計算系統的性能。
目前,一般的大型高性能計算系統使用Myrinet系統作為主要的數據互聯繫統,而使用百兆或千兆乙太網進行管理與控制。而在小型的高性能計算系統中,可以用直接使用千兆甚至百兆乙太網作為互聯繫統。
二、計算節點
計算節點是高性能計算系統中的單個計算機系統,是整個高性能計算系統的基礎。基於英特爾架構的伺服器系統是作為高性能計算節點的最佳選擇。應為大多數高性能計算需要多執行緒同時執行,這樣基於英特爾至強處理器的計算節點可以滿足需求。另外,大多數模擬類型程式需要進行大量浮點運算(FLOPS),因而節點處理器支持大量浮點運算的能力就變得至關重要。當前的英特爾處理器(如英特爾至強?處理器)的處理速度已達到每秒二十億次浮點運算。這意味著由1000枚處理器組成的集群的處理能力可與世界上一些功能最強大的超級計算機相媲美,而成本卻低得多。
數據採掘則不同。根據資料庫的體系結構,這些套用對I/O的潛在要求較高。而分散式駐留記憶體資料庫例外。在該體系結構中,集群中的每個處理器都要參與一部分資料庫處理。當一個查詢請求被提交給資料庫時,它同時被提交給集群中的所有處理器。由於所有處理器都只需處理一小部分資料庫,因而解決查詢的速度要比在傳統體系結構中快得多。
高性能計算系統設計
設計一個高性能計算系統是一件複雜的系統工程,涉及從軟體到硬體的各個層面,而且每一個環節都相互關聯。因此,設計和構建一個高性能計算系統應該使用系統的設計方法,按照一定的步驟來確定整個系統中的各個部分。這一部分,我們按照系統的設計方法來對高性能計算的各個環節的設計和設備選型給出相應的建議。
判斷套用的特性
對於一個高性能計算的套用,我們可以從如下的幾個方面來確定其類型:
一、套用的粒度
由於高性能計算的套用需要在多個計算節點上同時運行,則在各個節點計算的同時,還需要相互間的通訊。所謂套用的粒度,是指在一個高性能計算套用中計算所花的時間與通訊所花的時間之比。這是高性能計算套用的一個重要的特徵之一。
很顯然,不同的套用其粒度也不一樣。例如一個生成動畫電影的高性能計算套用,用於每幅畫面可以由任何一個計算檢點獨立計算生成,節點間的通訊量非常少,因此,這是一個粒度非常大的套用。反之,對於一個進行汽車模擬碰撞試驗的高性能計算的套用,由於在每個節點上計算的任何部件的運動,都會對其它的部件的狀態有影響,因而節點間的相互通訊會非常多,這類套用就是小粒度的套用。
套用力度的大小將直接影響對計算節點和互聯設備的選擇,從而影響對整個項目的投資。一般來講,粒度大的套用可以使用相對低速互聯技術(如百兆乙太網),從而降低項目的費用。因而,在套用的開發和最佳化過程中,應該儘量加大整個套用的粒度,減少不必要的節點間相互通訊。
二、套用的計算特性
高性能計算的套用的目的是通過計算來解決某個特定的問題,但不同的套用所需要的計算特性也不一樣,一般的高性能計算系統套用的計算特性主要分為入下三種類型:
▪多媒體運算
主要使用整型和雙精度運算。例如用於圖形圖像處理和三維圖像生成的高性能計算系統就屬於多媒體運算系統。在這種情況下,計算節點的多媒體計算功能非常重要。比如英特爾至強處理器所帶的SSE和SSE2指令就非常適合這種套用。
▪科學計算
主要使用浮點運算功能,這也是目前高性能計算系統的最主要套用領域。像天氣預報和石油勘探等高性能計算系統都屬於這一類。
▪資料庫套用
主要使用邏輯計算和I/O操作。現在的資料庫集群系統和格線資料庫系統就屬於這類套用。它需要計算節點有很強的I/O處理能力,同時,整個高性能計算系統也應該具有足夠的外接存儲空間。
在設計高性能計算系統的過程中,根據不同的計算類型來確定相應的計算節點和系統配置,從而使系統可以滿足套用的需求同時達到最佳的系統性價比。
三、套用的時效性
一個大型問題之所以需要用高性能計算系統來解決,可能主要是因為如下兩種情況:一是因為問題無法在單個節點上計算完成;另一個是因為在一個節點上無法在規定的時間內完成。這裡就關係到套用的時效性了。一般來講,套用的時效性就是指一個高性能計算的套用需要在多長的時間內計算完成。它是確定高性能計算系統規模的重要參數之一。
我們知道,天氣預報系統的計算就是一個時效性很強的高性能計算套用,因為在得到測量的數據後,我們必須在最快的時間內計算出相應的結果,以便相關人員及時發出當天的天氣預報。
對於一個時效性很強的套用,在設計高性能計算系統時,一定要以滿足套用的計算速度為第一目標,一定要使高性能計算系統在規定的時間內完成計算。否則,該系統就沒有意義。而對於一個時效性不強的套用,可以考慮通過延長計算時間來減少節點和互聯繫統的配置,但也要考慮到可以容忍的時間限度和系統的可靠性等因素。特別是隨著時間的延長,整個系統中某個節點出現故障的機率會增加。
四、確定系統規模
確定高性能計算系統的規模是一個複雜的過程,一般來講,主要從以下幾個方面來考慮:
▪特定的目標:
有些高性能計算系統在設計之初就確定了系統規模,在具體設計時,可以根據系統的配置情況來計算是否達到要求。
▪套用的要求:
如上一節所講的那樣,從套用的粒度、套用的計算特點和套用對實效性的要求來確定套用的規模。
▪系統投資:
從某些方面來講,系統的投資與系統的規模成正比,也就是說系統投資決定系統規模。但為了達到最佳的投資回報比可以根據系統套用的計算特點來選擇合適的計算節點和互聯設備,從而在投資不變的情況下獲得最佳性能。
現在,我們通常使用每秒的浮點運算次數來表示一個高性能計算系統的性能。通常,這個性能標準可以用LinpackHPC的基準測試來獲得。由於在系統設計的過程中,我們根本無法測試整個系統。那么,如何來估算一個高性能計算系統的性能就顯得十分重要。
從理論上講,一個高性能的計算系統的性能在理想的狀況下為系統中所有的處理器的計算能力的總和。例如一個高性能計算系統使用雙路的英特爾至強處理器為節點。而單個至強處理器的Linpack值達約達到2Gflops,即每秒20億次浮點運算。則一個有256個雙路英特爾至強處理器的高性能計算系統的理論性能可以達到256X2X2=1024GFlops,也就是每秒一萬億次浮點運算。如果使用四路英特爾Itanium2系統為計算節點,由於每個Itanium2處理器的Linpack值達約達到3.2Gflops,即每秒32億次浮點運算,則在理想的情況下,80個節點就可以達到每秒一萬億次浮點運算的性能。
80*4*3.2=1024GFlops
當然,以上的情況是在理想的狀況下達到的。在具體實施時,需要根據互聯設備的性能、應用程式的特點來集體考慮。
Node PBS調度管理系統
為應對市場需求,lanmantech公司研發出了LMT-LicManager的PBS作業調度系統,考慮到商業公司隨著競爭的加劇和套用的普及,高性能計算不再是一個不惜工本的套用領域,許多項目的預算約束越來越嚴格。這就要求廠商生產全系列的產品滿足不同規模套用的需求、更加可靠地保護用戶原有投資、加速IT投資回報,而且也要求實現資源按需供應和更大範圍的資源共享,這些都推動格線和公用服務等新的計算模式的發展。在LicManager的Node PBS作業調度管理系統中,高性能計算用戶通過登錄管理節點進行作業的提交,作業提交後,由管理節點上的PBS作業管理軟體進行管理和分發。LicManager的PBS作業調度系統是為生產環境設計的,它可提供了圖形和命令行兩種用戶界面來提交批處理、互動式作業,並提供查詢作業、佇列、系統的狀態和跟蹤作業的處理。
在作業運行之前,用戶可將需要的檔案拷貝到執行節點上,和將這些指定的檔案在作業執行完之後,拷貝出來。只有在所有的檔案成功傳輸之後,作業將會被列入調度表。
提交任務的用戶可以指定作業的優先權,可以向佇列和系統層提供默認值。PBS作業調度系統支持單佇列或多佇列方式。並選擇標準的先後順序調度,或者改進的調度算法。
LicManager的Node PBS作業調度系統還可以使用戶定義廣泛的批處理作業的內部相關性。這些相關性包括:執行順序、同步執行和根據指定作業的成功或失敗結果條件執行。
LMT-LicManager的Node PBS作業調度系統是一套標準的、面向複雜套用的集群作業系統,具有非常友好的套用界面。
算法:
(1)先來先服務(FCFS):按作業到達的先後次序調度,它不利於短作業。
(2)短作業優先(SJF):按作業的估計運行時間調度,估計運行時間短的作業優先調度。它不利於長作業,可能會使一個估計運行時間長的作業遲遲得不到服務。
(3)回響比高者優先(HRN):綜合以上兩者,即考慮作業估計運行時間,又考慮作業等待時間,回響比是:HRN=(估計運行時間+等待時間)/估計運行時間
(4)優先權調度:根據作業的優先權別,優先權高者先調度。(如果是數字,則數值越大優先權越高)
原則:
進程調度決定就緒佇列中哪個進程將獲得處理機,並實際執行將處理機分配給該進程的操作。進程調度是作業系統中最基本的調度,在批處理及分時系統中都必須配置。調度的目標和原則:
1、公平性:(fairness)確保每個進程都能獲得公平的CPU時間片
2、高效性:(efficiency)使CPU100%的時間都在工作
3、回響時間:(responsetime)系統對用戶的反應時間
4、吞吐量:單位時間處理的工作量
目標:
1、調度應對所有作業都是公平合理的2、應使設備有較高的利用率(提高系統利用率)
3、每次運行儘可能多的作業(提高系統吞吐量)
4、較快的回響時間
功能:
1、記錄各作業在系統中的狀態2、從後備佇列中挑選一部分作業投入運行
3、為被選中的作業做好執行前的準備工作
4、在作業執行結束時,做善後處理工作
使用步驟:
準備:編寫描述改作業的腳本,包括作業名,需要的資源等。提交:將該作業提交給PBS伺服器。
排隊:伺服器將該任務排入適當的佇列。
調度:伺服器檢查各工作節點的狀態是否符合該作業的要求,並進行調度。
執行:當條件滿足時,作業被發給相應的執行伺服器執行。程式運行時執行伺服器會收集程式的標準輸出和標準錯誤流,等程式結束時,將這些信息返回給用戶。
查詢和調整:當作業在運行時,用戶可以進行狀態查詢。用戶發現作業提交錯誤時,可以刪除正在運行的作業。
查看結果:使用文本編輯軟體或者系統命令等方式,查看輸出及錯誤信息顯示。
特點:
1、簡單易懂的人性化操作界面2、支持動態加入計算節點
3、高速運算作業
4、可以支持數百台計算機系統
5、開放性和兼容性高
6、性能與價格的性價比優越
7、優秀的後台技術支持。
結語
隨著高性能計算集群套用規模的不斷擴充,集群的管理問題也隨之而來。起初集群規模較小,比較容易管理和維護,系統的能耗和運維成本問題還不明顯。但隨著集群規模的不斷擴充,集群系統能耗高、利用效率低、大規模集群系統運維管理困難等缺點逐漸凸顯出來。在LicManager的Node PBS作業調度系統的幫助下,對用戶而言高性能計算集群系統就好像一台具備很多CPU的大伺服器,多個用戶可以同時使用這個系統。Node PBS作業調度系統管理用戶提交的作業,為各個作業合理地分配資源,從而確保充分利用集群系統的計算能力,並儘可能迅速地得到運算結果。
LicManager的Node PBS作業調度管理可以根據用戶的需求,動態地完成集群的軟硬體資源的管理和調度,保證用戶作業公平合理地共享集群資源,提高系統利用率和吞吐率。