高效能運算

**超級電腦**（英語：Supercomputer），指能夠執行一般個人電腦無法處理的高速運算的電腦，規格與效能比個人電腦強大許多。現有的超級電腦運算速度大都可以達到每秒一兆（萬億，非百萬）次以上。「超級計算」（supercomputing）這名詞第一次出現，是在 1929 年《紐約世界報》關於 IBM 為哥倫比亞大學建造大型制表機（tabulator）的報導。

1960 年代，超級電腦由西摩・克雷在控制資料公司裡設計出來並領先市場直到 1970 年代克雷創立自己的公司──克雷研究。憑著他的新設計，他控制了整個超級電腦市場，並占據顛峰位置長達五年（1985 年－1990 年）。到了 1980 年代，正值小型電腦市場萌芽階段，大量小型對手加入競爭。在 1990 年代中期，很多對手受不了市場的衝擊而消聲匿跡。今天，超級電腦成了一種由像 IBM 及惠普等大型電腦公司所特意設計的電腦。雖然這些公司通過不斷併購其他公司而增強了自己的經驗，克雷研究依然是超級電腦領域的巨頭之一。

## 歷史

「超級電腦」一詞並無明確定義，其含義隨電腦業界的發展而發生變化。早期的控制資料公司機器可達十倍速於競爭對手，但仍然是比較原始的純量處理器。到了 1970 年代，大部分超級電腦就已經是向量處理器了，很多是新進者自行開發的廉價處理器來攻占市場。1980 年代初期，業界開始轉向大規模平行計算系統，這時的超級電腦由成千上萬的普通處理器所組成。1980 年代中葉，將適量的向量處理器（一般由 8 個到 16 個不等）聯合起來進行平行計算成為通用的方法。1990 年代以後到 21 世紀初，超級電腦則主要互聯基於精簡指令集的張量處理器（譬如 PowerPC、PA-RISC 或 DEC Alpha）來進行平行計算。

## 用途

超級電腦常用於需要大量運算的工作，譬如數值天氣預報、運算化學、分子模型、天體物理類比、汽車設計類比、密碼分析等。

## 設計

超級電腦的創新設計在於把複雜的工作細分為可以同時處理的工作並分配於不同的處理器。他們在進行特定的運算方面表現突出，但在處理一般工作時卻不那麼優秀。他們的資料結構是經過精心設計來確保資料及指令及時送達 —— 遞移速度的細微差別可以導致運算能力的巨大差別。其輸入／輸出系統也有特殊設計來提供高頻寬，但是這裡的資料傳輸延遲卻並不重要 —— 超級電腦並非資料交換機。

根據阿姆達爾定律，超級電腦的設計都集中在減少軟體上的序列化、用硬體在瓶頸上加速。

### 技術挑戰及其解決方案

* 超級電腦通常產生大量的高熱，冷卻超級電腦是一個很大的問題。
* 因為資料傳送的速度不能比光快，幾公尺的距離導致了幾十奈秒的延遲，而克雷著名的環型設計保持了最短距離。
* 超級電腦在短時間內消耗及生產大量的資料，需要投入很多資源確保資訊妥善傳送及存取。

因超級電腦而開發的技術：

* 向量處理器和張量處理器
* 水冷技術
* 非均勻訪存模型

### 處理器技術

向量處理因超級電腦而建立並用於高效能運算。向量處理技術後來被用於普通電腦內的訊號處理架構及單指令流多資料流，例如：電視遊樂器及通用圖形處理器等。

### 作業系統

一般的超級電腦都使用 Unix 或類 Unix 作業系統，但在講求絕對高效能的操作環境時，超級電腦開發人員會動用特別的輕量級核心（Light Weight Kernel－LWK），減少中斷請求、行程間通訊等開銷以提高效能。

輕量級核心包括 Cray XT3 的 Catamount，Cray XT4 的 CNL (Compute Node Linux)， 以及 IBM 藍色基因的 CNK（Compute Node Kernel）。

### 程式設計環境

訊息遞移介面及較舊的並列虛擬機器（PVM）常用於非共享記憶體系統（Distributed Memory System），而 OpenMP 常用於共享記憶體並行系統。

傳統上 Fortran 的編譯器可以產生比 C 或 C++ 更高效能目的碼，所以 Fortran 仍然被使用作科學程式設計。

### 優化編譯器

超級電腦需要編譯器優化技術以產生優佳的目的碼，現今的優化編譯器都對向量化（Vectorization）、程式迴圈、記憶體階層及數據局部性進行優化。

此外，優化編譯器都以高層次的中間表示（Intermediate Representation）優化程式 － 包括 Open64 編譯器的 WHIRL、IBM XL 編譯器的 Wcode。

### 數學函式庫

超級電腦主要執行科學運算等擁有大量向量及矩陣浮點計算的程式，因此優化常用的數學函式會提高運算效能。BLAS 函式庫使向量及矩陣浮點計算效能大大提高，而優佳化數學函式庫則提高三角函數及平方根等數學運算。

### 平行檔案系統

平行檔案系統屬於分散式檔案系統的一類，支援多客戶端節點、多檔案系統伺服器，以及支援平行 I/O（如 MPI-IO、HDF5）；現今流行的平行檔案系統包括 Lustre 和 PVFS。

### 網路技術

超級電腦節點之間的通信一般都需要使用高效能的網路介面，現今大多 TOP500 的超級電腦使用乙太網路（44.8%）及 InfiniBand（41.8%）。

傳統上 InfiniBand 比乙太網路有更高的頻寬，同時因作業系統呼叫省略（Operating System Bypass）而提供更低的延遲時間（latency）；然而 2011 年思科系統開發 VFIO 技術於超級電腦和叢集應用，使一般的乙太網路介面也能提供低延遲時間，從而提升乙太網路在超級電腦的應用層面。

## 通用超級電腦的類型

大致上可以分為三種：

* 向量處理機器能為大量資料同時進行同樣的運算。
* 叢集式處理器特別建立連接處理器及記憶體的通信網路，非均勻訪存模型就是最常見的。最快的超級電腦就是使用這個科技。
* 商品電腦叢集使用高頻寬低延誤的網路來連接大量普通商品電腦，建設成一個電腦叢集。

根據摩爾定律及經濟規模，一個現代的桌面電腦比 15 年前的超級電腦有更高效能，皆因某些超級電腦的設計已經放在桌面電腦內。再者，簡單晶片的開發及生產成本位元意設計給超級電腦的更便宜。

超級電腦所處理的問題都適合併行化，當中減少處理單元之間的資料傳送量。因此，傳統的超級電腦可以被電腦叢集所代替。

## 最快的超級電腦

TOP500 列表排名世界上最快的 500 台超級電腦

GREEN500 列表排名世界上最節能的超級電腦

### 速度單位

超級電腦速度以每秒浮點運算次數 "FLOPS"（floating-point operations per second）來作量度單位，常見的表示電腦中的峰值或速度用的單位英漢對照如下：

* 一個 MFLOPS（megaFLOPS）等於每秒 100 萬（=106）次的浮點運算
* 一個 GFLOPS（gigaFLOPS）等於每秒 10 億（=109）次的浮點運算
* 一個 TFLOPS（teraFLOPS）等於每秒 1 兆（=1012）次的浮點運算
* 一個 PFLOPS（petaFLOPS）等於每秒 1 千兆（=1015）次的浮點運算
* 一個 EFLOPS（exaFLOPS）等於每秒 100 京（=1018）次的浮點運算

此外，由於浮點積和熔加運算或乘積累加是兩次的浮點運算（每條 FMA 指令包括加 / 減及乘），因此當處理器支援 FMA 指令時，峰值是兩倍每秒所能執行 FMA 指令的數目。

### 目前最快的超級電腦

截至 2022 年 6 月 1 日，目前全球最快的超級電腦 AMD 與美國能源局橡樹嶺實驗室合作打造的超級電腦「Frontier」，運算能力是 1.102 ExaFLOPS，和二名的日本理化學研究所（Riken）與富士通（Fujitsu）共同研發的「富岳」（Fugaku）運算能力 415.53 PFLPOS 約 2.6 倍。「Frontier」採用 AMD 代號「Milan」的第三代 EPYC 伺服器處理器，搭配 OCP 加速器模組設計的 Instinct MI250X 加速繪圖卡構成，這也是超級電腦再次由 x86 架構奪下第一名。

### 目前最節能的超級電腦

截至 2017 年 11 月 14 號，世界上最節能的超級電腦是日本國立理化學研究所的菖蒲超級電腦 B 型。

### 過往的超級電腦

* 2009 年 10 月，中國研製的第一台千萬億次超級電腦在湖南長沙亮相，全系統峰值效能為每秒 1.206PFlops。這台名為天河一號的電腦位居同日公布的中國超級電腦前 100 強之首，也是當時世界上最快的超級電腦。天河一號的研製成功使中國成為繼美國之後世界上第二個能夠研製千萬億次超級電腦的國家。
* 2008 年 11 月，IBM 的 Roadrunner 成為當時最快的超級電腦，運算能力為 1.105PFlops。
* 2008 年 11 月 16 日，克雷公司推出美洲虎系列，運算能力為 1.059PFlops，採用 45376 顆四核心的 Opteron 處理器，362 太位元組的記憶體，傳輸總頻寬 284GB/Sec，硬碟容量超過 10 拍位元組，內部的資料匯流排頻寬 532 太位元組 / 秒。這台電腦將放置在美國的國家高速電腦中心，並開放給各界有需要的團體申請使用。
* 2007 年 11 月，IBM 的 Blue Gene/L，運算能力為 478.2 TFlops，安裝了 32768 個處理器。它是 PowerPC 架構的修改版本，正式運作版本被推出到很多地點，包括羅蘭士利物摩亞國家實驗室（Lawrence Livermore National Laboratory）。
* 在 Blue Gene/L 之前，最快的超級電腦是日本電氣株式會社在橫濱地球科學學院的地球模擬器。它由 640 個特別設計的 8 階向量處理器根據 NEC SX-6 架構所組成的叢集，使用 Unix 的修改版本。
* 在地球模擬器之前，最快的超級電腦是美國加州羅蘭士利物摩亞國家實驗室的 ASCI White，它的冠軍位置維持了 2.5 年。

### 類超級運算

* 某些分散式運算把叢集超級運算推至極限。例如 SETI@home 計劃現在平均有 667.716 TeraFLOPS 運算能力。.
* 2009 年 4 月，Folding@home 聲稱擁有超過 8PFLOPS 運算能力。
* GIMPS 運算能力也高達 18TFLOPS。
* Google 的搜尋引擎系統 Google 資料中心總處理能力界乎於 126 及 316TFLOPS 之間。Tristan Louis 估計這個系統等於 32000 至 79000 台雙 2 GHzXeon 電腦。由於散熱問題，Google 的搜尋引擎系統應該屬於網格運算。

## 超級電腦時間線

## 專用超級電腦

專用超級電腦都是針對單一問題而開發的電腦。這些電腦都使用專門編程的 FPGA 晶片及超大型密集晶片，縱然犧牲普遍性也要提高成本效能比率。它們被用於天文物理學及密碼破解之上。

例子：

* 深藍，專門用於分析西洋棋
* GRAPE，天文物理
* Deep Crack，DES 解碼器

## 科幻中的超級電腦

* Matrix-「母體」是電影《駭客任務》中，由機器所創造出的一個類比環境，用以控制人類，並從人類身上吸取能源。
* SkyNet-「天網」是電影《魔鬼終結者》中美國軍方所開發具有人工智慧的超級電腦，但後來它具有自我意識而以全人類為敵。
* ARIIA-「愛莉亞」是電影《鷹眼》中美國軍方所開發具有人工智慧的超級電腦，但後來它以自我威脅判斷而決心消滅美國既有領導階層。
* V.I.K.I.-「薇琪」是電影《機械公敵》中由美國 USR 公司所開發具有人工智慧的超級電腦，但後來它以自我學習認定人類有自毀傾向，必須消滅所有威脅改由機器人監護才會有未來。
* MAGI-「麥棋」是動漫《新世紀福音戰士》中，設立於 NERV 總部由三台主機組成的超級電腦。MAGI 是古代三賢人的稱呼，他們是耶穌誕生的時候贈送耶穌禮物的東方三賢人。與使徒的對戰中，用以判斷使徒的降落點與分析使徒弱點，提供攻擊方針以及成功機率做參考數值。特別的是將三個不同的人格加入了三個主機當中，分別是科學家、母親、女性，在理性的計算之外也擬人的加入性格作為判斷的依據。當判斷有衝突時，三賢人系統會以投票機製做最後定奪。
* HAL 9000-《2001 年太空漫遊》中主角鮑曼所乘搭的太空船發現號的主機，被安裝了可以在必要時殺死乘員的功能。
* TRANSLTR 是丹・布朗（Dan Brown）的小說 -《數位密碼》中美國國家安全局所暗中開發的超級電腦，主要用來監聽網際網路封包，破解一切可能對國家安全造成威脅的加密訊息，包括加密的電子郵件，但是它的存在不被政府所承認。
* Veda-「吠陀」是日本動漫《機動戰士鋼彈 00》中由雪兒・亞克斯迪卡（Chall Acustica）所整合的量子型電腦，由天人組織（Celestial Being）所使用，連接上地球所有網路，瞬間獲得任何資訊，計算出預算方案。能與所謂「變革者」（Innovator）及原始變革者以腦量子波為媒介進行同步連接。
* X.A.N.A，來自動漫 Code Lyoko 一台有人工智慧的超級電腦，原用於計算，後用與摧毀軍事機密，有倒轉時空的能力。他的發明者後來發現此功能後不斷使用，導致 X.A.N.A 不斷自我升級。最後 X.A.N.A 通過計算得出結論：主宰地球。於是不斷發動 X.A.N.A 的環境平台『Lyoko』裡的圓塔（開啟後可用於計算使用並能實現虛擬事物現實化）通過電纜對人類進行破壞。後來它能夠實體化，把『lyoko』刪除了，但是被潛伏在世界上其他超級電腦裡的發明者發回了『Lyoko』原資料，『Lyoko』才得以重建。
* 樹狀圖設計者，來自日本動漫《魔法禁書目錄》和《科學超電磁砲》中以分析氣象資料為藉口，搭載於織女星一號衛星上的超級電腦；每月會運算一次地球上所有空氣粒子運動，可一次運算一個月的天氣；其他日子就用來對學園都市的許多研究進行科研運算。在《魔法禁書目錄》中被茵蒂克絲的魔法在太空中擊毀，而其核心被回收之後被一方通行徹底摧毀。

## 注釋

## 參考文獻

## 外部連結

**超級計算資源**

* TOP500 超級電腦列表 （頁面存檔備份，存於網際網路檔案館）
* 中國超級計算機行業

**超級計算中心及組織**

* （簡體中文） 上海超級計算中心
* （繁體中文）國家高速網路與計算中心 （頁面存檔備份，存於網際網路檔案館）—— 位於台灣新竹市，是中華民國國家實驗研究院的附屬機構。
* （英文） 勞倫斯利福摩爾國家實驗室 (LLNL) 高效能計算主頁 （頁面存檔備份，存於網際網路檔案館）—— 位於美國的勞倫斯利福摩爾國家實驗室
* （英文） HPCx （頁面存檔備份，存於網際網路檔案館）—— 英國超級電腦服務，由 EPCC 及 Daresbury 實驗室營運
* （簡體中文） 國家超級計算無錫中心（神威・太湖之光）

## 參見

**超級計算的歷史和相關概念**

* 貝奧武夫機群
* 分散式計算
* 快閃黨電腦
* 網格運算
* 運算歷史
* 平行計算

**其他電腦類型**

* 主機
* 量子電腦
* 微型電腦
* 小型電腦
* 大型電腦

**超級電腦公司及產品**

* 克雷研究公司
* 富士通
* 星盈科技
* Groupe Bull（法國公司，曾宣稱製造歐洲最高效能的超級電腦）
* IBM
* NEC
* 超級電腦系統
* SGI
* 太陽電腦（提供 Sun Grid Engine、Lustre 檔案系統等開放啟動原始碼軟體）