高效能計算也稱超級計算、HPC,本人在這個行業待了也有十年了,和熱鬧的手機、個人計算機行業相比,高效能計算是個冷僻的行業,長期以來遠離公眾視野,鮮為人知。只是這些年因為雲計算、超級計算機時常出現在各種媒體上,才慢慢浮出水面。今天就和諸位來談談高效能計算的發展歷史。
現在大家對高效能計算普遍的劃代,旁支不算,大致分為這樣四個階段:向量機、SMP、MPP、叢集。
上世紀七十年代,美國的克雷機開啟了高效能計算的先河。這是那個時代的超級計算機,一經推出就大受追捧,先後被美國能源部、國防部、波音、美孚石油採購。到了八十年代,我國也推出了自己的向量機:銀河1號,用來計算核爆、流體力學、石油開採等一些亟待解決又高度保密的課題。現在銀河1號向量機已經退役,曾經在北京的軍事博物館展出過,不知道現在還在不在。
向量機雖然計算效能強大,但是它的缺點也十分明顯,就是所有軟硬體都需要專門設計定製,與市場上大量銷售的軟硬體不相容,這使得向量機的價格非常昂貴,也只有政府和大公司這種不在乎成本的部門才用得起,很難做到普及。這個缺點嚴重製約了向量機的發展。所以當時有人為了降低成本,把目標轉向通用的軟硬體裝置,於是SMP就此誕生。
SMP中文翻譯是”對稱多處理”。它是在計算機裡安裝多塊處理器,共享記憶體和資料匯流排來提高計算效能。我們現在的手機、平板、PC使用的多核CPU其實也是SMP架構,區別是以前的處理器會安裝在主機板的多個基座上,由匯流排連線;現在是把多塊處理器在生產時就封裝到一起,插在一個基座上。
由於SMP技術難度低、計算能力提升明顯、價效比高、市場需求大,能夠相容當時大多數軟體,所以當年很多個人電腦廠商也生產SMP架構的伺服器,比如當年Compaq、HP、IBM一眾行業大佬,都是生產SMP伺服器的主力軍。
SMP架構透過增加處理器數量,結合軟體提升計算效能,但是它需要共享記憶體和資料匯流排,執行過程中存在物理資源競用的問題,限制了效能發揮,屬於“平行計算+序列IO”方案,而且SMP架構能夠增加的處理器數量十分有限,也制約了SMP架構的發展。後來人們為了追求更強大的計算能力,便推出MPP架構。
MPP中文名稱是”大規模並行處理”。這種架構相比SMP,取消了共享記憶體和資料匯流排,把每臺計算機做一個獨立的節點單元來對待,節點之間用專用的高速網路連線,透過軟體協同完成共同的任務,屬於純粹的無共享架構(Share Nothing)。MPP一般都是IT巨頭的定製機,它的硬體代表是刀片機,軟體代表是分散式資料庫,比如GreenPlum、Teradata都屬於MPP架構。
MPP架構相比SMP架構,效能雖然有了大幅提升,但是缺點也更多,比如對硬體裝置要求高,產品價格貴,擴充套件能力不足,需要專門的軟體來支援(開發MPP軟體是遠比MPP硬體更復雜的事)。所以它仍然是那些不在乎成本的IT巨頭和壟斷部門的專屬玩物。實際這些年來,MPP之所以沒有發展,這些制約缺點是主要原因。
但是人們對高效能計算的追求是無止境的,為了獲得更強大的計算效果,我們現在實際上已經來到了第四個階段:叢集。
現在的計算機叢集可說是這些年IT新技術發展的綜合體和集大成者。它除了繼續沿用MPP節點的概念,還大量借鑑採用網際網路衍生出來的各種基礎技術。比如普遍採用通用硬體來降低設計和採購成本;採取“軟體定義硬體”策略,把原本屬於硬體的功能轉移到軟體來解決,而且還便於升級。使用統一的協議支援異構計算平臺,允許動態增加減少計算節點,透過”硬體冗餘+軟體容錯“解決硬體執行過程中出現的問題。所以現在計算機叢集即實現了超強的擴充套件能力,又能夠保證足夠的經濟性。
另外,與前幾次主要面向專業領域不同,當前叢集的發展方向已經轉向了商用領域,這是非常廣大的市場,有著巨大的商業利益,最典型的就是雲計算。它面向商業使用者,更多強調經濟性和使用成本,使用虛擬化技術支援多租戶共享,普遍採用按時付費的支付模式,能夠根據使用者需求分配雲端資源。叢集架構另一個主要領域是超級計算機,當前世界上主要的超級計算機,比如我國的“神威”、“天河3”,美國的“泰坦”、“Summit”,日本的“京”,都屬於叢集架構。而且雲計算和超級計算機也正在融合中,現在一種叫“超算雲”的共享計算模式正在各大雲平臺中形成。
說完硬體,再說軟體。由於建立在叢集架構之上的業務需求、市場生態已經發生了根本變化,基於早期幾種架構研發的軟體很難發揮出叢集的效能。據我所知,現在有幾家ICT巨頭看好叢集業務帶來的商機,正在投入巨資研發通用的集群系統軟體,希望一舉拿下這個藍海市場。這有點像移動網際網路剛剛開始的時候,蘋果推出IPhone手機後,需要再推出iOS作業系統來適配IPhone手機。另外在超算領域,超級計算機做為國家綜合科技實力的具體表現,與各國基礎科研密切相關,將帶動一大批產業發展,也都在加大對超算和超算軟體的研發投入。所以現在無論是企業還是政府,都是一副百舸爭流的狀態,希望透過叢集作業系統進一步鞏固各自的優勢地位,拿到下一場技術革命的門票。
1. 集成了雲端所有剛需:虛擬化、安全管理、大資料、資料庫、人工智慧、應用容器、分散式應用軟體。
2. 對於分散式處理,能夠雲端、邊緣端、終端一體化分佈協同,無縫對接。
3. 對於節點的支援,可以是幾臺伺服器到幾十萬臺伺服器。
4. 對於線上的使用者人數,可以是幾個人到幾千萬人線上。
5. 對於資料處理,支援OLAP、OLTP、SQL,資料可以從幾個G到EB級別。
6. 對於應用軟體,可以是幾個軟體到幾百萬個應用軟體在雲端執行。
7. 對於應用開發,提供人工智慧介面、大資料介面、分散式程式設計介面。開發者可以像開發單機軟體一樣開發分散式軟體。
最後說幾句,一個不爭的事實是,目前無論雲計算、超算,還是叢集軟體,仍然是美國最強,我國處於追趕地位。由於叢集硬體基本構型已經完成,現在各國發力競爭的主要是叢集軟體,尤其是叢集作業系統這樣的通用基礎軟體。美國曾經透過PC作業系統、手機作業系統獲得在個人電腦、手機領域的絕對優勢,鞏固了全球領導地位,進而影響全世界,直到現在。現在叢集作業系統類似於當年iOS登場的時候,叢集作業系統將決定我國未來二三十年在雲計算、大資料、人工智慧的生態市場和領導地位。
對於中國,這是一場不能輸的戰爭。
前方道路依然漫長,在此與各位共勉!