要建構一套CP值很高的處理big data所需的硬體,還真是有點難搞,這時候會說「有錢真好」:)
以下整理一下這幾天討論的技術問題,括號裡是有關教學的註解。
Q1. 要採用HD還是SSD呢?
A1. 看容量和應用而定... 現在SSD與一般HD的價差約4倍,但throughput可能有四倍,而且access latency就不用比了,所以如果你的access pattern非常random,還是買SSD吧... 當然SSD有穩定性的問題,就靠RAID去解決了,真的是重要的資料,還是多放幾處比較好。
(這些有關於市場行情、硬體規格知識,常去討論版、多看一些相關的資料就知道了。)
Q2. 系統的架構重不重要?
A2. 系統架構上有個重點是disk controller有多少頻寬。頻寬不夠,再多SSD也没用。例如我正在搞的這台,有3個12Gbps的控制器,20個硬碟插槽,一個做法是放16個硬碟,加上RAID6,8T x (16-2) = 112T的空間,剩下的4個放SSD作為cache。一來SSD cache壞了也無所謂,二來這樣硬碟可以不必又貴又耗電的高速企業級硬碟。
(這些case-by-case的know-how,需要做一些個案研究,做額外的思考,最好是培養出think different的能力。)
Q3. 如何讓效能更好?
A3. 如果儲存系統的部分效能不夠的話,還可採用高速PCIe SSD,還可以放1T的主記憶體做file caching。計算的部分,多一些CPU核心當然有幫助,但要贏過別人的話,可能要靠GPU和硬體加速器,還有又硬又軟的FPGA。一台不夠的話,就多買幾台,用高速網路串起來,現在已經有100Gbps的Ethernet。當然,還有很多高階技術,族繁不及備載,有些需要錢,有些有錢也買不到。
(有些高階技術,說的容易,做起來難,因為技術不見得成熟,有些問題要先驅者自己設法解決,需要一些hacking。有些需要產學合作,拿到一般人拿不到的東西。)
Q4. 還有甚麼要注意的?
A4. 硬體層次的秘密,大概在以上就講完了,沒什麼太難的概念。重點還是在軟體,秘密在於:1. 要知道應用的需求和分析其效能瓶頸 2. 要懂得軟硬體之間的搭配和互動關係 3. 制定高CP值的硬體規格 4. 軟體的優化。沒有注意這些,即使花很多錢買高檔設備,結果可能也是枉然。大部分HPC和Big Data的使用者,一開始都不懂這些,需要特訓。
(大部分資工系大學畢業生並沒有足夠的背景,所以我們實驗室的研究生們,近來時大都必須接受這類特訓。沒有足夠的時間做扎實的訓練,是做不出什麼好結果的。)
Q5. 那要怎麼搞定軟硬體?
A5. 上述的秘密,其實都不是什麼秘密,只是因為一般人搞不清楚整個系統軟硬體的運作,計算機結構、作業系統、程式設計都分開學,學了之後又不會將這些知識融會貫通,才變成秘密。沒有融會貫通的話,就會看到不斷出現的新硬體、新軟體,以及看不懂、學不完的招式。
(學校的價值,不是像一般人吵來吵去說理論重要,還是實務重要,真正該做的是提供學生融會貫通的方法、場域、機會。)
Q6. 所以照以上這樣說,這也不是甚麼了不起的學問?
A6. 天下本來就沒有什麼學問是真的了不起的,「人」才是最重要的。雖然如此,但這些know-how也不能說不是秘密,因為就算我把這些要點都說清楚了,一般人可能還是有聽沒有懂,而且就算懂了道理,實務上可能兜不起來。就像背了獨孤九劍的總訣,沒有悟性,不會活用,也是枉然。
(做學問是來提昇個人境界的,學生要想融會貫通,不能只仰仗老師來教,自己要多學、多想,找問題來挑戰自己。)
沒有留言:
張貼留言