文/羅萱 林新華 金耀輝
HPC與云融合之道
文/羅萱 林新華 金耀輝
云與高性能計算可以融合嗎?上海交通大學提出新思路,他們嘗試利用開源云平臺為高性能計算提供彈性計算服務,努力為未來的校級超算中心運行管理提供借鑒。
高性能計算作為實驗和理論以外的第三大科學研究手段,越來越受到重視。高性能計算甚至在一定程度上反映了綜合國力發展水平,各國都投入巨資建造大型超級計算機,TOP 500的記錄不斷被刷新。但是超算規模的增加,也給高性能計算的系統管理帶來了新的挑戰。
1. 在固定資源情況下,多用戶使用的高性能計算系統作業調度追求系統利用率和用戶服務質量平衡,但很難同時保證,比如短作業等待時間的調度目標將導致低利用率,而高利用率的調度目標有可能增加用戶作業的等待時間。
2. 隨著高性能計算應用的普及,各種應用從底層操作系統、到并行計算中間件(如MPI)以及上層的應用軟件都各不相同,對于計算、網絡和存儲等物理層硬件的要求也不盡相同,比如高性能計算還可以再細分為計算密集型、吞吐密集型和數據密集型等應用,作業調度如何考慮這些約束因素?
3. 高性能計算的體系架構也在不斷演進,GPU和眾核異構體系加速了計算性能的提升,但也使得高性能計算的作業調度變得更加復雜。
云計算是一種全新的服務交付模式,允許用戶以服務的方式從服務提供商那里獲得應用程序、開發環境、硬件平臺、虛擬/物理服務器等資源。所有這些服務是按需使用的,用戶只需要為已經使用或正在使用的資源付費。其中虛擬化技術是云計算中的一項關鍵技術,虛擬化技術也可以將一個物理設備抽象成多個邏輯設備。這種模式可以將計算和其他資源分配變得更加靈活、更加可靠、更加容易擴展和升級。

云計算這種靈活的彈性應用模式將為解決上述高性能計算的系統管理帶來新的機遇。自云計算興起以來,一個有趣的問題一直備受關注,即是否能在商業的云計算服務上實現高性能計算。美國德州大學Austin分校的研究人員比較了Amazon EC2計算節點組成的虛擬集群和一個物理集群的性能,基本配置如下表:

表 Amazon EC2的性能基本配置
他們通過各種典型的并行測試集發現,對于基于OpenMP的共享內存并行程序,EC2集群的性能大約下降了7%~21%,而基于MPI的分布內存并行程序,EC2集群的性能大約下降了40%~1000%,性能下降的主要原因是虛擬化和互連網絡導致。虛擬化是高性能計算的一大制約因素,除了導致性能下降以外,有些硬件設備如:GPU和Infiniband根本就無法虛擬化。
此外,為了追求更大的計算容量和能力,可能不能靠單一超算中心的資源去滿足,需要跨域調度多個超算中心的資源,網格計算較好地解決了這一問題。但多個云之間的跨域互操作,標準尚未形成,基本還停留在概念中。
我們提出了一種融合高性能計算、網格計算和云計算的新型計算框架——高性能彈性計算(HPEC),可以跨域管理和調度多個云計算資源,支持GPU和眾核異構計算環境,用戶可以自主靈活地申請和管理計算、存儲和網絡資源,這些資源可以是虛擬化的或者是直接的物理資源,支持High Performance Computing Platform as a Service(HPCPaaS)多節點集群及上層軟件的快速部署,同時支持計算密集(MPI)和數據密集(Map/Reduce)應用等。
本文將總結國內外相關研究和應用進展,探討HPEC的體系架構和關鍵技術挑戰,最后簡要介紹上海交通大學網絡與信息中心在HPEC方面的初步研究工作。


FutureGrid計劃是一個網格/云/高性能計算的混合試驗床,由NSF支持,它通過萬兆高速網絡互聯了美國和歐洲主要從事高性能計算的大學/中心,如圖1所示。它的主要目標是支撐學術界和工業界開展云/網格/高性能計算和應用的研究,可以給用戶提供一個靈活的開發和測試平臺,用以評估云/網格計算相關的開源軟件的互操作、功能以及性能,體系結構研究包括認證、授權、調度、虛擬化、中間件和接口等,應用研究包括天文、化學、生物、工程和氣候等,這些試驗可以運行在虛擬機上或者若干臺物理機組成的虛擬集群,用戶可以通過自主定制軟件鏡像,快速部署計算環境。
澳大利亞Melburne大學R. Buyyad教授研究組,提出過一個基于.Net技術的高性能云計算軟件平臺Aneka,并討論了Aneka在混合云上的部署方案。Amazon在其EC2上也提供了高性能計算服務,但基于硬件虛擬化技術。IBM正在研發一款云計算中HPC的管理套件,可以支持物理機集群,具有自助服務的Web接口,實現快速鏡像無盤部署,動態管理物理機和虛擬機資源。Mircosoft在Windows Azure云上,部署了美國國家基因信息中心的基因比對高性能計算工具BLAST。

圖3 高性能彈性計算驗證平臺體系

圖4 驗證平臺的硬件環境
圖2顯示了高性能彈性計算的體系架構,從本質上講,這個架構是從云計算體系架構演化而來,但有以下一些區別:
1. 云計算中的計算資源往往是以虛擬機方式呈現,而高性能彈性計算有時可能是沒有虛擬化物理機。這是高性能彈性計算中最大的技術挑戰。云計算虛擬機管理器Hypervisor的控制權限仍在云管理者手中,即使將虛擬機的根用戶口令給使用者,云管理者可以根據云資源租用合約隨時收回分配的虛擬資源。而在無虛擬化的物理資源上,如何能保證云管理者依然能收回分配的資源?
2. 鏡像管理。除了提供一般操作系統的標準模板外,還應該允許用戶自己創建鏡像,包括中間件和應用軟件的安裝,以及鏡像俘獲和重用,這是與云計算體系所不同的地方。
3. 動態部署。高性能彈性計算一般都是以虛擬集群方式提供資源,因此要求能夠快速地部署多臺服務器,通常數量為幾十至上百臺。
4. 資源監控。監控各種資源的使用情況,為調度管理提供依據。
5. 調度管理是高性能彈性計算中最復雜的部分,它包括云計算中虛擬集群的資源分配、虛擬機/物理機的遷移和虛擬集群的動態資源調整,在每個虛擬集群中的作業調度等。
6. 安全控制可以沿用云計算模式的安全訪問控制,通過ACL和VLAN來控制不同試驗間隔離,以及用戶口令來設定不同權限。
7. 用戶試驗管理包括多租戶管理,試驗虛擬集群總資源的設定,用戶訪問門戶等。
為了驗證高性能彈性計算的思想,我們建立了一個驗證平臺,如圖3所示。IaaS我們采用開源軟件OpenStack搭建,可以提供類似Amazon的EC2和S3的服務。IaaS平臺由24個計算節點(IBM dx360 M3,雙路X5650@2.66GHz CPU,96G內存),存儲96TB NAS系統,鏡像節點配置了512GB的SSD,完成快速的鏡像部署,所有節點采用6臺BNT G8142E萬兆以太網交換機互連,此外存儲節點S1和S2可以完成類似Amazon EBS的彈性塊存儲服務,網絡節點N1和N2完成DHCP和VLAN管理,所有資源的調度由控制節點完成,控制管理網絡采用千兆網絡互連,如圖4所示。授權用戶可以通過校園網訪問,申請動態的服務器和存儲資源。
在IaaS之上,我們部署了MPI、MongoDB(NoSQL數據庫)、Hadoop(Map/Reduce開源軟件),同時開展系統日志分析數據和計算流體力學應用。同時,我們還在進一步開發監控、調度、管理和認證功能,為未來在全校范圍提供高性能彈性服務做準備。
該方案結合云計算技術,提出了一種新型高性能彈性計算框架,該框架具有資源靈活分配的優點,增加了資源利用效率,可以同時動態容納多個不同類型的高性能計算應用,特別適合校級或者更大規模的超算中心運行管理。
(作者單位為上海交大網絡與信息中心)