前不久,筆者在國家超級計算天津中心參觀了天河一號A,異構融合結構、自主知識產權CPU等產品、高新尖應用等都給筆者留下了深刻的印象。在參觀之后,筆者與國家超級計算天津中心劉光明主任和NVIDIA(英偉達)公司PSG全球副總裁Shanker Trivedi等進行了深入的交流,不僅了解了我們國家在超級計算機領域的最新動向,對CPU和GPU異構融合結構也有了更深的理解。
國家超級計算天津中心劉光明主任
與NVIDIA公司PSG全球副總裁Shanker Trivedi先生接受專訪
天河一號A三種形式CPU的分工
相對于傳統的超級計算機,天河一號A采用了三種形式的CPU,分別是Intel處理器,還有NVIDIA(英偉達)Tesla,還有自主研發的飛騰1000,那么這三種不同架構的CPU又是如何進行分工協作的呢?
對此國家超級計算天津中心劉光明主任解釋道,國際上千萬億級計算機,或者更高級別的計算機,用通用CPU計算機去做的話因為規模大,功耗大,而且使用起來不一定很好。包括IBM曾承擔了一個美國計算機的研究項目,完全都是通用CPU的方法去構建最快計算機,結果這個項目流產了,就是因為研制費用很高,做出的機器占地規模大,功耗也比較大。
中國“天河一號A”
在2005年到2007年間,國防科技大學便在研究通用CPU和GPU加速器的結合,來提高超級計算機的計算性能,比如流體力學、氣動力學、FFT、CFD的東西,包括還有很多算法都適合這種結構,解決很多復雜的數學問題,這種結構是適用的。在2009年做天河一號第一期的時候,選用了AMD的GPU來替代當時國防科技大學自己研究的流處理器,這樣就誕生了當時的天河一號。后來英偉達推出了Tesla 2050,因為AMD的GPU沒有ECC校驗,而Tesla有ECC校驗,所以在2010年的時候,天河一號A進行了升級,GPU換成了NVIDIA的。同時高速互聯系統換成自主研發的產品。
在目前天河一號A中,整體系統分為兩部分,一部分是Intel CPU和NVIDIA GPU構成的新系統,這個系統在整個所有天河系統的7/8,另外1/8的部分用的是自主研發的CPU 飛騰1000。天河一號A的系統是經過實驗優化的環境,有很多科技計算的程序、應用都在此做測試實驗,還有一些應用在不斷的調試,測試,完善。
英偉達在HPC方面的規劃
其實不光天河一號A,目前全世界500強的計算機大概有十分之一采用了NVIDIA(英偉達)的加速卡,那么未來NVIDIA(英偉達)在這方面有什么計劃?
GPU運算結點
對此NVIDIA(英偉達)公司PSG全球副總裁Shanker Trivedi先生介紹到,天河一號A已經向全世界證明了異構超級計算是一個非常好的科學計算。未來比如美國的高性能超算中心、德國的超算中心等均將采用GPU加速并行計算的體系結構。在傳統超級計算機中,CPU只貢獻了整個高性能計算的10%甚至更少的份額,GPU貢獻80%,90%的份額,很多計算性能是從GPU貢獻出來的。
另外,NVIDIA(英偉達)已經有了300個以上應用軟件,大量的應用軟件,解決科學問題的工具已經可以在CPU+GPU這樣的異構體系上運行。通過新的異構計算加速的方式,為未來大大的節省超算中心構建的成本,同時節省功耗,降低能源功耗,節省費用。
NVIDIA表示了未來會把基于Kepler方面的應用推到成千上萬個應用,那么NVIDIA在推動異構編程方面未來重點的方向是什么呢?天津超算中心又有哪些關于異構編程和應用這方面的經驗呢?
對此NVIDIA公司PSG全球副總裁Shanker Trivedi介紹到一般是三種方法來做這種異構上的編程:第一類是存在了很多年的,甚至幾十年的應用,對于這樣一類應用,我們建議采用一種直接編程的方法,編程的標準在OpenACC。OpenACC是一個國際標準,這是開放的,很多人都可以采用的標準的編譯的方法,這種方法可以使得傳統的,存在這么久的軟件可以最小的改動,因為寫這個程序的人有可能都不在了,可以以最快的方法編到GPU和CPU上,異構的平臺上進行計算,同時加速。舉一個例子,在美國的能源實驗室里,他們有一個很大的應用,這個軟件應用叫S3D,類似像核聚變這樣的應用,這個程序有100萬行的程序,只改了400行,只改了非常非常小的程序量,大約只有萬分之四,通過編譯器編譯,得到了六倍速度的提升。
第二種類是新的應用,建議用CUDA GPU并行編程的方法,這個架構模型可能大家都熟悉,CUDA可能大家都熟悉,實際上就是把傳統的C語言,類似其他的高性能通用編程語言進行一點點擴展,只是稍微做了一些語法方法的擴展,大家寫程序的方法不變,這樣重新寫出來的程序效率可以大大的提升,可以在這個程序上跑。什么樣的程序多了呢?像信號處理,圖象處理,還有一些科技計算,用這樣的方法來提升計算的效率。
最后一種方法是用一些很多科研機構庫函數的方法,NVIDIA提供了很多系統級的庫函數,還有很多是大學、科研機構,還有網上做了很到的庫函數。舉一個例子,一些很傳統的中間件,你調他的庫函數的話,用這樣的方法來提升,他們那些函數已經是GPU上的,寫程序的人并不用關心他們是怎么實現的,只是調用這些名稱和函數來做就好了。
總而言之,就是對于長期存在已有的程序,NVIDIA推薦用OpenACC,但是對于新程序,或者對性能有追求,一定要求特別高性能的可以用CUDA來進行改寫,對于其他一些傳統的,比較規范的程序,調用大量函數的,可以用調用庫函數的方法來做。
國家超級計算天津中心劉光明主任則道,天河一號A這種異構結構幾個典型的應用還是應用得不錯的。比如在典型的石油勘探數據處理,經過天河一號A,已經完成了具有自主知識產權的石油三維歷史偏移。這個軟件過去是掌握在國外人手上,國外公司手上,對于我們來講是高價政策。我們現在通過天河一號A,從2011年年初開始,跟東方物探進行合作,持續做了兩年的時間,整體性能從通用CPU的版本上升到CPU+GPU的版本,整體性能提升了大概六倍。同時我們在這個基礎上又做了一個基于計算系統做的優化,磁盤的數據處理系統變成一個基于內存的。另外包括現在的氣動力學,大飛機的仿真,說得更通俗一點就是數字風洞的處理,還包括一些典型的應用,包括還有一些源的分析等等這些,現在應用都不錯。
總結:天河一號獲得世界第一之后,引起了高度關注,關于其背后的技術也吸引了大量人士的關注。國家超級計算天津中心通過和NVIDIA成立一個聯合實驗室,對異構在超級計算方面的發展有著重大的意義,NVIDIA也能在軟硬件方面同時提供支持。從筆者的觀察來看,在未來的超級計算機發展中,因為能耗、成本等方面的優勢,異構結構將會成為未來的主流趨勢,在越來越多的超算中得到應用。