超級計算機的組成:一個系統還是多個系統協同合作?

這些天新聞說,美國禁止出售高端晶元給中國,自己也要研發世界第一的計算機。剛好這些天看操作系統的書,對於多個core組成的CPU,SMP方式協同控制。一個超級計算機有幾百顆CPU,上萬G的內存,它是如何組織這麼多的硬體工作,是只有一個linux系統,還是多個系統控制,與家用pc和普通伺服器的區別在那裡。可以的話,先介紹一下大型伺服器工作站與PC差別,在比較超級計算機的差別,最後在說一下linux系統是控制原理,以及如何充分利用超級計算機的功能。

2015.08.02


不請自來。

我本人有過搭建小型超算集群的經驗,來解答下題主的疑問。

一個超級計算機有幾百顆CPU,上萬G的內存,它是如何組織這麼多的硬體工作。

首先,「一個超級計算機」的說法本身並不正確。其實是一個「超算集群」。也就是說,超算並不是一個大機箱里插滿了 cpu 和內存。

是只有一個linux系統,還是多個系統控制

從我搭建小型集群的經驗來看,一般的超算集群都是一群通過高速網路(比如 InfiniBand)相連接的伺服器。每台伺服器上都有自己的 CPU、內存、加速卡,也有自己的系統,但是存儲往往是共享的。當然了,很多情況下為了管理方(tou)便(lan),這些伺服器的軟硬體配置,包括cpu的型號和數目、內存的型號和數目是一致的,操作系統的用戶體系等配置參數是同步的。而如何調動計算資源(就是具體要用多少個核心,某一個核心到底用來計算待解問題的哪個部分)是由應用的運行者和應用代碼本身決定的。對於開放的超算服務,上面往往還會安裝有作業調度系統。就是大家提交作業任務,告訴系統,要用多少運算資源,運行什麼,然後由調度系統按照一定的演算法來擇機啟動運算程序。

與家用pc和普通伺服器的區別在那裡。

其實本質上沒有什麼本質區別。與普通伺服器的主要的區別是:

  • 使用的CPU性能較高
  • 配備有高速網路設備
  • (有的)配備有加速卡(加速卡中的一大類是顯卡)
  • 系統配置(包括BIOS配置)會針對運算性能(而不是並發性能)進行調優

除此之外,與家用PC的主要區別是:

  • 為7×24小時連續滿負荷運行設計
  • 具有主板管理控制器(BMC),便於遠程批量對所有機器進行控制作業
  • 具有一定的冗餘設計,可以抵抗某些不利的因素(如電源失效、硬碟故障等)對整個系統的穩定性的影響

可以的話,先介紹一下大型伺服器工作站與PC差別,在比較超級計算機的差別。

這三者的共同點是,都是通用計算機,理論上能夠完成的任務是一樣的。三者的根本區別在於,設計意圖不一樣。以伺服器為例,伺服器設計上就是要儘可能地實現「裝到機房裡,能穩定運行,就不需要管理員物理維護」的目的。因此,伺服器一般都有各種冗餘配置,並且多數都配備可以遠程管理的BMC晶元,方便遠程維護伺服器。顯然,伺服器並不需要音效卡(一個能beep的蜂鳴器就好)、顯卡(一個集成顯卡,能顯示tty就好)。而工作站,我的理解是,介於家用pc和伺服器之間的一種產品。它往往具有一些伺服器的特點,比如就有較高性能的計算能力等。但是設計上還是給人用的,就是往往在使用時,使用者是坐在它面前的,因此顯然會配置一些跟人打交道的設備,也就不太重視遠程維護的能力。

最後在說一下linux系統是控制原理,

linux本身沒什麼特別的,只不過是上面安裝的軟體完成了控制的功能。一般來說,一個計算程序是這樣啟動的

  1. 用戶在一個節點上(就是一台伺服器上)啟動一個特別的程序,指定具體的計算應用,並指定計算資源的分配(就是要多少個核心,用哪些伺服器)
  2. 這個程序負責與其它節點建立連接,完成身份鑒定,並在遠程的各個節點上啟動這個特別的程序
  3. 這些特別的程序通過某種機制建立一個低延遲,高帶寬的數據傳輸連接
  4. 這些特別的程序分別在每個節點上啟動指定數目的計算應用進程,並且為這些進程提供消息傳輸的通道

在有任務調度系統的集群中,第一步是由任務調度系統,而不是用戶執行的。

以及如何充分利用超級計算機的功能。

這個問題就比較有意思了,要具體問題具體分析才成。一般來講,是分析一個計算應用的速度的瓶頸在哪裡,然後針對瓶頸環節,或是調整演算法,或是調整硬體,或是調優配置。

補充:

  • 那個「特別的程序」是什麼?答:一般來說,是MPI(Message Passing Interface)的執行程序,一般叫做mpirun,MPI有好多種實現,Open MPI是其中一種
  • 當然,「量變引起質變」,當集群中節點數增加的時候,就會出很多問題,比如通信、存儲等,這些方面還都在不斷的研究


謝邀

善用搜索

一台超級計算是否需要安裝多套操作系統? - 坂本番茄醬的回答


最開始你手下只有一個員工,效率為1

後來你手下有十個員工,且每個員工效率都提升為2

員工還是員工,不是把每個員工的兩隻手拆下來重新組裝,其他地方一樣的道理(超集)

不過他們確實可以同時抬起一塊很大的石頭(共享)


小小的跑一下題

我們平時常見的PC都屬於工作站的範疇,這兩個概念不是對立的。


推薦閱讀:

Linux 作為伺服器操作系統的優勢是什麼?
符號連接、軟連接、硬連接、快捷方式、副本(copy)之間有何區別和聯繫?
為什麼現在的Windows中不能在硬碟分區的根目錄下建立名為$bitmap的文件?
你們見過的最快的開機速度是多少秒?
點關閉按鈕關閉程序和在任務管理器中選結束任務有什麼區別?

TAG:操作系統 | Linux | 計算機 | 超級計算機 |