你需不須要一臺每秒能夠進行數百萬億次浮點運算的機器?或者,你想不想知道點關於你家地下室裏的超級計算機是如何上電運行的趣事兒?建造一臺屬於自 己的計算集羣——亦即超級計算機——是每一個閒得發慌還有錢燒的專業極客都能作到的事情!從技術上來說,一臺現代多處理器超級計算機其實是一個計算機網 絡,這些計算機並行地工做以解決特定的計算問題。本文將從硬件和軟件兩個角度爲你解開建造一臺超級計算機的神祕面紗。node
Steps
1.首先要肯定硬件部件和所須要的資源
你須要一個頭節點(head node),至少一打的計算節點(compute node),一臺以太網交換機,一個電源分配單元(power distribution unit)和一個服務器機架。計算一下電力消耗,冷卻需求和佔地需求。一樣,你須要肯定你的私有網絡的IP地址段,節點的命名,預計使用的軟件包以及搭建 服務集羣所用的技術(後面會有更多解釋)。bash
2.創建計算節點
你須要本身組裝計算節點,或者你也可使用預配置的服務器。服務器
- ●選擇一款可以最大化空間、冷卻和能源消耗效率的機架式服務器;
- ●或者,你可使用一打左右閒置的過期服務器——它們集合在一塊兒工做的性能要比它們獨立運行時的總和還多,並且還能省你一大筆錢!整個系統的處理 器、網絡適配器、主板應該是同一型號的,這樣才能達到最佳運行效能。固然了,別忘了給每一個節點配內存和硬盤,而且至少給頭節點配一臺光驅。
3.將服務器裝在機架上
安裝的時候從下面開始,這樣能夠避免機架頭重腳輕。你可能會須要朋友的幫助才能完成這件事——這麼多的服務器將很是的重,把它們放到機架的滑軌上會很是困難。網絡
4.在機架頂端安裝以太網交換機
如今來配置交換機:容許9000字節的大的幀,將IP地址設置爲你在第一步裏面肯定的靜態地址,關閉例如SMTP嗅探這樣沒必要要的路由協議。多線程
5.安裝能源分配單元
根據目前你的節點的最大需求,可能220V就能知足你的高性能計算需求了。架構
6. 一切都安裝穩當以後,就能夠開始配置環節了
Linux是高性能計算集羣(HPC Cluster)操做系統的事實標準,這不只由於Linux是科學計算的理想環境,也是因爲在數以百計甚至千計的節點上安裝的時候,Linux不會產生任何花費。設想一下,在如此多的節點上安裝Windows會花掉你多少錢呢?工具
- ●從更新主板BIOS的固件開始,將全部節點的BIOS固件都更新至最新的版本;
- ●在每一個節點上都安裝好你喜歡的Linux發行版,頭節點須要安裝隊圖形界面的支持。比較流行的選擇,包括CentOS、OpenSuse、Scientific Linux、RedHat以及SLES;
- ●做者極力推薦你使用Rocks Cluster Distribution來搭建計算集羣。除了它已經安裝好計算集羣須要使用的全部工具外,Rock還提供了一種經過PXE和RedHat的「Kick Start」來進行批量部署的方案。
7. 安裝消息傳送界面、資源管理器以及其餘必須的庫
若是上一步裏你沒有選擇Rock作爲你的節點的操做系統,那麼如今你須要手動設置並行計算機制所必需的軟件。性能
- ●首先,你須要一個便攜的bash管理系統,例如Torque Resource Manager,這些軟件容許你劃分以及分配計算任務;
- ●若是安裝了Torque Resource Manager,那麼你還須要Maui Cluster Scheduler來完成設置;
- ●其次,你須要安裝消息傳送界面(message passing interface),用來在不一樣的計算節點的進程之間共享數據。不用想了,OpenMP是你的菜!
- 最後,不要忘了用多線程的數學庫及編譯器來編寫你的計算任務。我是否是說過其實你只須要Rocks?
8.將全部的計算節點接入網絡
頭節點負責將任務分配到計算節點,計算節點再把結果返回回來,節點間的消息傳遞也是如此,因此固然是越快越好了。測試
- ●使用私有網絡將集羣中的全部節點互聯起來;
- ●頭節點其實還充當局域網裏的NFS、PXE、DHCP以及NTP服務器;
- ●你必須將該網絡從公網中分離出來,這樣能夠保證該網絡中的廣播報文不會影響到其餘的網絡;
9.對集羣進行測試
在你把你強大的Top500計算集羣交付給客戶以前,你還要測試一下它的性能。HPL(High Performance Lynpack)評測軟件包是測試集羣的計算速度的常見選擇。你須要從源代碼編譯它,編譯的時候根據你選擇的架構,打開全部可能的優化選項。優化
- ●固然了,在編譯源代碼的時候,你須要打開全部可能的編譯優化選項。例如,若是你使用的是AMD的CPU,編譯Open64的時候,請加上-0fast優化選項;
- ●把跑分結果和TOP500.org上最快的計算機作個比較!