文/周立旸
云讓HPC平臺動起來
文/周立旸
伴隨著高性能計算性能的不斷提升和系統的日益龐大,單一計算平臺與不同應用多樣化需求的矛盾也日益突出,同時后期部署、管理、能耗、散熱等成本也不斷提高,導致實際的計算成本居高不下,單純的CPU利用率已不能用來作為衡量高性能計算中心服務水平和效益的惟一指標。
云計算,作為一種新型的計算模式,可以將應用、數據和IT資源以服務的方式通過網絡提供給用戶使用,在提供高性能計算用戶所需的自主性和安全支持以外,實現更大的資源靈活性和更豐富的使用計量方式,成為許多用戶優先考慮的解決方案。采用云計算的基礎架構,高性能計算中心可以自動地管理和動態地分配、部署、配置、重新配置以及回收資源,也可以自動部署多種應用平臺,從而根據不同需求實現快速高效、動態優化的資源分配。利用云計算的特性,高性能計算中心既可以為傳統的計算服務提供更加靈活擴展的計算資源,也可以為各種不同項目提供動態使用的“專屬系統”。

但是,如何有效利用云的方式取決于應用,對于計算密集型和I/O密集型的高性能計算應用,傳統的云計算解決方案往往束手無措,其主要的障礙包括:
I/O瓶頸
當前許多云計算架構建立在服務器虛擬化技術之上。由于虛擬機的I/O實現機制不同,在許多系統平臺上會嚴重影響應用的網絡延遲和訪問帶寬,造成額外的資源需求,降低了整體運算性能。對于一些基于MPI的并行程序,其性能甚至可以相差數倍。
數據瓶頸
高性能計算通常需要對大量的非結構化數據進行訪問,由于云計算環境中所提供的計算平臺具有多樣性和靈活性的特點,需要考慮為不同平臺提供統一的高速數據訪問性能、全局命名空間和多種應用訪問協議支持,同時支持和計算資源快速分配相匹配的數據管理功能。根據應用需求,存儲容量應當能夠動態增加或移出,確保信息始終可用。
管理瓶頸
傳統的高性能計算,其資源一般相對固定,通常通過資源和負載管理軟件來提高資源的利用率,在云計算環境中,資源上限遠大于一般應用的需求相比,如何有效地結合負載管理和資源配送,提高總體系統利用率和用戶服務質量,同時滿足特定應用高峰時間的需求,是構建高性能計算云所必需考慮的問題。
因此,對于高性能計算中心來說,需要結合其自身的應用特點和云計算平臺的優勢,通過虛擬化技術和自動化技術,同時支持物理機和虛擬機環境,實現硬件資源和軟件資源的統一管理、統一分配、統一部署、統一監控和統一備份,打破單個運算對資源的獨占,提供動態的高性能計算服務平臺。

表 與傳統的高性能計算相比“高性能計算云”的特點資源管理虛擬化用戶管理平臺支持數據存儲用戶使用安全控制能耗管理作業管理系統為作業找資源只管理處理器、應用軟件不支持獨立的用戶管理系統用戶無法獨享資源無法修改已安裝平臺、無法動態修改沒有備份機制不支持異構存儲無資源審批流程無法自定義資源配置用戶認證管理無資源管理系統+作業管理系統為(用戶、應用、作業)動態進行資源創建、回收處理器、內存、存儲、網絡、應用軟件服務器虛擬化、存儲虛擬化、網絡虛擬化統一的用戶管理用戶可以獨享資源可以同時支持多種平臺、可以動態修改完善的備份、恢復機制異構存儲平臺支持審批、拒絕、預留機制可以自定義資源平臺、軟件等用戶、網絡、訪問控制高效節能的資源利用技術

高性能計算云包含以下關鍵組成技術:
統一的用戶和服務管理平臺
需要提供統一的云計算服務管理門戶,進行整體資源管理和服務流程管理,使平臺管理員和用戶可以進行自助式的各項服務管理操作,包括資源池的管理,資源管理和監控,用戶服務的開通、停止、變更,用戶管理,資源使用情況統計,服務申請及狀態查詢,能耗與節能策略管理、操作系統鏡像和軟件包管理等等。
根據高性能計算應用的特點,系統應提供不同的應用模板來支持不同分布式應用(如Hadoop, MPI集群)的快速部署,以及服務器之間的關聯關系,如IP地址的指向,端口的匹配等等。
統一資源池管理
在傳統的計算資源管理模式中,管理員需要考慮每一個計算資源、每一個應用系統的配置情況,需要考慮每一個應用系統所需要的各種計算資源,包括服務器、存儲、網絡、應用系統等等,這種管理模式的管理成本高,也讓管理員的工作變得非常復雜,需要人為考慮和干預的過程非常多,容易造成管理上的失誤。同時,管理員很難對數據中心內的計算資源和應用系統進行全盤考慮,不利于數據中心的整體優化。
云在對計算資源的管理模式上采用池化的辦法,通過服務器、存儲、網絡等虛擬化技術將計算資源按照不同的標準組織成不同的資源池。在一個資源池內,可以包括服務器、存儲空間、網絡端口等。這樣,在一個資源池中我們就可以為某一個應用系統提供所需要的所有資源。通過云計算的自動化功能,云計算的管理員可以方便、快速地在資源池中定制化地選擇應用系統需要的計算資源配置,并在使用結束后進行快速回收。
支持物理機和虛擬機環境的動態部署引擎
為了提供計算所必需的高性能,需要同時提供包括虛擬機和物理機環境的快速、動態部署功能,并支持專用的高性能、低時延計算網絡,如Infiniband、萬兆以太網等。
在整體方案中,通常可以劃分一部分資源進行虛擬化,從而提供一個共享的開發測試環境給用戶,便于用戶在正式提交作業之前進行程序的調試和試運行。在一些具體的應用場景上,針對一些對性能要求很高的計算任務,虛擬化帶來的性能開銷不可忽略,因此可以考慮在不虛擬化的情況下進行資源的分配和管理。
靈活的服務接口
最終用戶可以通過云計算管理平臺獲取自己項目獨占的計算資源,包括硬件、應用軟件和操作系統等,用戶可以在計算資源上按照自己的需求進行個性化調整。另外,用戶也可以通過云計算管理平臺部署的計算資源上的作業管理系統,以排隊的方式和其他用戶共享計算資源,來進行作業的運算。
根據多年的探索和實踐,IBM正在積極地與行業領先的獨立軟件開發商、企業以及高校合作,將私有云計算平臺擴展到高性能計算領域。通過高性能計算云管理套件,可以將獨立的高性能計算資源連接成一個私有云,從而幫助用戶更高效地利用他們的高性能計算資源。其參考架構如圖1所示。
為實現更智慧的計算平臺,需要采用新的方法來設計和建設高性能計算中心,以便做到專為數據設計,針對任務進行調優,并且在云中管理。