鵝知道|一文搞懂讓你懵圈的超級計算機:真的不是堆CPU就行

騰訊科技2019-07-06 12:12:23

點擊上方“騰訊科技”,“星標或置頂公眾號”

關鍵時刻,第一時間送達


來源 / 騰訊科技&知乎

歡迎下載騰訊新聞APP,查看更多科技熱點新聞


6月18日,在德國法蘭克福舉行的國際超級計算大會(ISC)上公佈了最新一期的超級計算機前500強榜單。


本次入門的超級計算機門檻非常高,首次全部超過1PFlops(每秒一千萬億次浮點運算),這是全球超級計算機500強榜單發佈26年以來的一次歷史性突破。


在這份500強的榜單中,中國的超級計算機數量達 219 台,數量位居世界第一,其中173台來自聯想,71台來自浪潮,63台來自曙光。


對於普通人來説,平常鮮有機會接觸到超級計算機,因此對於超級計算機的理解也處於一知半解的狀態中。為此,騰訊科技摘取多位知乎專業答主的內容,並稍加整理,通過一篇文章讓你徹底搞懂超級計算機。


超級計算機的核心技術是什麼?

——知乎答主張競揚


CPU是超級計算機的重要組成部分,但不是超級計算機技術的全部。網絡上一些人將CPU技術等同於超級計算機技術,認為如果沒有自主的CPU,就沒有掌握核心技術。


這種説法並不準確。實際上,相對於聲名顯赫的CPU,默默無聞的體系結構設計才是一直被大眾和媒體忽略的關鍵技術。舉例來説,曙光星雲採用了自主研發的超並行處理體系結構、神威藍光超級計算機採用了大規模並行處理體系結構、天河1號採用了多陣列可配置協同並行體系結構、天河二號採用了自主創的新型異構多態體系結構。


體系結構設計能力有多重要呢?打個比方,如果説超級計算機是一隻軍隊,那麼體系結構設計就是軍隊的歷史傳承、光榮傳統、組織管理水平、軍事訓練水平、武器裝備、後勤能力、高級將領的戰略指揮水平和中下層軍官的戰術指揮能力,而CPU則是軍隊的士兵。


此外,超級計算機不是簡單的CPU堆砌。因為堆CPU也是一個技術活,體系結構設計的不好,高速互聯網絡做的不行,系統軟件做的不好,儲存列陣做的不行,即使堆再多的CPU,超級計算機的性能也上不去。簡單粗暴的堆砌CPU根本不可能製造出一台超級計算機,更不要説是能與天河2號相匹敵的超級計算機。


另外,哪怕掌握了正確的堆砌CPU的方法,也不是單憑靠堆CPU數量就能獲得一台能與天河2號相匹敵的超級計算機。原因何在? 因為超級計算機建設不是簡單的搭積木式的堆砌CPU——即便堆砌了海量的計算卡,但受制於其他方面,比如高速互聯網的技術水平而導致無法到達理論計算性能。


具體來説,高速互聯網絡的難點在於超級計算機的計算節點之間傳輸的數據量巨大,延遲要求嚴格,當互聯網絡效率不足,就會導致數據擁堵,大幅降低超級計算機整機系統效率。而超級計算機的計算節點越多,對互聯網絡的要求也就越高。因此,即使想通過堆砌CPU來提升運算能力,也會受限制互聯網絡的性能,造成這種做法並不能無節制的提升超級計算機的性能——受限於諸如互聯網絡以及其他方面的瓶頸,整機效率被拉低,導致實際性能並沒有因為堆砌了更多的CPU而有所提高。


另外,堆砌過多的CPU還存在功耗過大、機箱體積過大等問題,非常不利於日後的運營維護和使用,在超級計算機市場基本不具備市場競爭力。


在軟件系統方面,控制少量計算節點和控制大量計算節點對軟件系統的要求近乎於天差地別。軟件系統必須保證每個超級計算機計算節點的性能被髮揮到最大才能充分挖掘出硬件上的潛力。否則,就會影響超級計算機的整機效率。


因此,如果沒有一個好的體系結構,那麼CPU的性能將無法全部發揮出來,而且堆砌的CPU數量越多,整個系統就越複雜,對高速互聯網絡、存儲列陣、監控系統、冷卻系統和軟件方面的要求也就越高,整機效率的提升也就越難。而體系結構設計能力水平不夠高的情況下,單純堆砌CPU數量,反而會降低整機效率,無法提升整機性能。


超級計算機與普通計算機有哪些區別?

——知乎答主小侯飛氘


超級計算機沒有那麼神祕,就是個計算工具。你輸入計算條件,它給你輸出計算結果。和買菜用的計算器是一樣一樣的,只是規模上有區別而已。


家用電腦一般只有一顆CPU(GPU同理),每顆CPU內一般只有2~8個物理核心。而一般的超級計算機有成千上萬顆CPU,每顆CPU內一般有幾十個物理核心。


這麼多CPU當然不是拿來供暖的,而是為了通過並行計算,完成繁重的計算任務的。舉個例子,在飛行器製造領域,經常要計算飛機附近空氣的流動,以及飛行器本身的受力情況。最常用的計算方法是把空氣、機體分割成一個個小塊塊,分別計算每個小塊的運動和受力,再整合起來得到整體的運動和受力情況。


一般來説,分割的越精細,每個小塊越小,計算越準確。而魚與熊掌不可兼得,分割的越精細,計算量也越大。


假如要把一個1 的立方體分成1 的小方塊,那麼就要對10億個小方塊進行計算。如果用單個CPU核心,需要連續做10億次運算,算完整個過程可能要花上一天。而如果有10個CPU核心,那就可以把這10億個方塊分成10份,每個CPU核心只要計算1億個方塊,然後把得到的結果整合起來就行。這樣大約能快上10倍,兩個小時就能算完了。


在科研和工程領域,有許許多多這樣的計算任務,例如原子基本性質的量子力學計算、藥物反應過程的分子動力學模擬、黑洞碰撞的相對論模擬、大氣運動和天氣變化的預測、橋樑設計中的受力計算……這些複雜的問題,如果用單個CPU核心計算,可能要花上幾個月甚至是幾年才能得到結果。這麼長的計算時間是難以接受的,所以我們需要用多個CPU核心進行並行計算以提高效率,集成大量CPU於一身的超級計算機自然就應需而生了。


超級計算機都被用來做什麼?

——知乎答主史中


舉幾個例子:


1、“核模擬”就需要高性能計算


核反應是一個鏈式反應,原子裂變之後會影響到周圍的原子,周圍的原子又會影響它們周圍的原子,對於這些原子行為模擬所需要的計算數量級,就迅速變成了指數型的關係。


這就需要非常強大的超級計算機才能進行模擬。而且,要知道這種模擬對於計算力的要求是沒有上限的。計算能力越強,模擬就能進行得更精準,從而能夠發現更深層的規律。


氣候預測也是高性能計算的一個巨大的應用方向。


2、氣候預測同樣需要高性能計算


氣候預測,廣泛來看就是對全球氣流、洋流等等的預測,侷限來看就是天氣預報。天氣預報的基本原理,就是通過氣象衞星捕捉地圖上每一個點的雲層和氣流運動軌跡,然後通過大量的計算推導出他們未來的走向。


要知道,即使是今天,對於天氣的預報,精度都難以達到80%以上。但是,你一定能感覺到,現在的天氣預測已經比你小時候準確得多。這就是因為我們現在的高性能計算能力大幅提高了。


舉個例子,之前氣象計算的粒度是1個經緯度,大概是111公里,而現在我們氣象計算的精度已經細到了3公里,氣象科學家們已經把精度提高到1公里。這樣的精度提升,對於計算力的要求可是指數級的。


3、視頻渲染也是高性能計算的需求“大户”


你還記得《阿凡達》嗎?這部2009年上映的電影裏,特效場景比例達到了70%。自從阿凡達之後,特效已經成為了電影的標配,甚至兩個演員在綠布前就可以完成一部高質量的太空科幻電影。支撐這些特效的,無疑就是巨大的高性能計算力。


4、除此之外,高性能計算還可以進行天體物理計算、地震預測、材料科學計算、基因組測序、交通分析、人類組織系統研究等等等等。




近期精選

“設計大神”艾維離開 蘋果未來將走向何方?

“暴風”消散:一家昔日風口公司的荒誕終場

被收購、倒閉、內訌 無人駕駛進入“混沌時代”

https://hk.wxwenku.com/d/201085614