文/季冬
如何從軟件和硬件兩個方面來實現一個可靠和穩定的高性能計算機,是當前面臨的主要問題。
當前高性能計算領域發展面臨如下關鍵挑戰:
1.系統規模持續增大,系統功耗成為制約系統發展的主要瓶頸。例如,在去年SC12上發布的TOP500排名中,世界第一快的高性能計算機Titan包括56萬多處理器核,功率達到8.2MW(兆瓦)。如果按照Titan機器外推,未來的艾級(Exa-Scale)超級計算機的功率將達到300MW,每年的電費就需要大約3億美元。然而,美國能源部目前給高性能計算機設計人員提出的目標是,在20MW功率限制下實現艾級計算機。
2.系統可靠性和可用性。隨著系統規模持續增大,整機的平均無故障時間變得越來越小,如何從軟件和硬件兩個方面來實現一個可靠和穩定的高性能計算機,也是當前面臨的主要問題。
3.應用程序的可擴展性。目前硬件已經發展到很大規模,但是大量的科學應用程序還很難擴展到如此大規模的系統,如何優化當前重要的科學計算程序,使之擴展到大規模系統,同時開發支持大規模系統的性能分析和正確性調試軟件也是當前亟待解決的問題。

如果讓傳統的程序充分利用GPU加速設備,需要使用CUDA編程接口把程序中計算密集部分重新改寫,這無疑給傳統程序移植到GPU設備帶來很多挑戰。
為了解決高性能計算機系統功耗面臨的挑戰,國際上目前主流的技術是采用通用處理器和加速部件混合的架構來提高整機的性能功耗比。在通用處理器方面,英特爾的至強處理器系列、IBM的Power處理器系列和AMD的Opteron系列是高性能計算機采用的主流處理器,在體系結構方面變化很少。
然而在加速部件上,卻存在很大的變化。Nvidia公司在幾年前發布的基于Fermi架構的圖形處理器,由于其在性能功耗比方面比通用處理器表現出了更好的性能,目前已經大量地應用在高性能計算機上,例如Titan高性能計算機和中國的“天河一號”都采用了Nvidia的圖形處理器。2012年,Nvidia又發布了基于Kepler架構的圖形處理器,在性能方面都有了顯著提升。英特爾公司在加速部件方面也不甘落后,在SC12上,英特爾公司首次官方發布了眾核協處理器Xeon Phi。在2013年中發布的TOP500中,排名第7的Dell公司研制的Stampede超級計算機就采用了最新的Phi處理器。本文重點分析下英特爾這款眾核處理器Phi。
Phi是基于英特爾的眾核集成體系結構設計(Many Integrated Core,MIC),最新發布的Phi處理器有兩個版本:Phi 3100和Phi 5100,都是采用英特爾最新的22納米工藝。Phi5100包括61個處理器核,支持320GB/s的內存帶寬,8GB的GDDR-5內存。每個核的處理器頻率在1GHz左右,每個核都具有32KB L1指令Cache,32KB L1數據Cache和512KB的L2 Cache,Cache之間支持一致性協議。每個處理器核包括4個硬件的線程,總共有244個硬件線程。所有核之間通過一個支持雙向通信的環(Bidirectional Ring)連接在一起,內存控制器均勻地分布在雙向環上。Phi協處理器通過PCI-E總線連接在服務器上,通過PCI-E和系統的處理器之間進行通信。在Phi協處理器上,運行一個單獨的操作系統,管理協處理器的各種硬件資源。
由于目前廣泛使用的Nvidia GPU在編程模型上主要采用CUDA編程接口,如果讓傳統的程序充分利用GPU加速設備,需要使用CUDA編程接口把程序中的計算密集部分重新改寫,這無疑給傳統程序移植到GPU設備帶來很多挑戰。對于英特爾的Phi協處理器,目前它支持多種編程模型。首先,傳統的基于MPI、OpenMP、Pthread等編程模型的并行程序可以無需任何修改直接運行在Phi處理器上。這種方式可以大大減少傳統程序移植到Phi加速部件的時間。其次,它支持對稱運行模式,即主機處理器和Phi協處理器同時執行并行程序的模式,例如一個并行的MPI程序可以同時在主機和協處理器上執行,這種模式可以充分利用主機處理器資源和協處理器資源。最后,Phi還支持英特爾提供的專有Offload編程模型,即僅僅把程序某部分計算模塊在Phi處理器上運行,其余部分仍然在主機運行。該種編程模型需要用戶修改原有程序,明確需要在主機和協處理器之間傳入和傳出的變量。此外,Phi協處理器還提供了512位向量處理單位,最多可以同時處理16個單精度或者8個雙精度運算。充分利用Phi處理器上的向量處理單元是提高程序性能的一個主要因素。
通過對當前的高性能計算機分析,我們可以看出,在高性能計算領域處理器的發展存在如下趨勢:
1.為了提高高性能計算機整機的性能功耗比,采用通用處理器和加速部件的混合架構成為未來發展的主要趨勢。加速部件處理器的核心相對簡單,比通用處理器可以提供更高的性能功耗比。
2.加速處理器的核心數目增長迅速。目前英特爾Phi處理器最多包括61個核,244個硬件線程,Nvidia最新GPU已經有1000多個核。面對如此多的處理器核心,如何充分挖掘應用程序中的并行性,有效利用這么多的處理器核,是硬件設計人員給軟件開發人員提出的主要挑戰。
3.基于混合模型的高性能計算機對應用程序的移植和優化提出新的挑戰。一般加速部件的編程模型也相對復雜,在程序的性能分析和性能優化方面給程序開發人員提出了很多要求。盡管英特爾的Phi處理器在編程上盡量和傳統通用處理器的編程保持兼容,但為了獲取更好的性能和充分發揮硬件性能,一定的性能調優仍是必須的。
在解決處理器性能功耗問題方面,我們國家也開始了很多自己的研究工作。由于通用處理器在計算某類具體應用程序時,芯片里面很多功能部件處于閑置或者空閑狀態。如何針對特定應用程序設計定制的處理器,刪減不需要的指令和功能部件,這樣可以大大提高處理器的性能功耗比。清華大學在研制針對特定應用程序定制處理器方面已經開始了一定的前期工作。目前主要針對天氣預報程序定制高性能計算機處理器,從而提高高性能計算機的性能功耗比。