3
本文作者: 黃鑫 | 2016-09-21 19:04 |
我們的包云崗老師在人生中的早期似乎顯得有點(diǎn)默默無聞,雖然這種“默默無聞”也已經(jīng)足以讓我等學(xué)渣服服帖帖的獻(xiàn)上自己的膝蓋。
包老師在2003年獲得了南京大學(xué)理學(xué)學(xué)士學(xué)位,并進(jìn)入中科院計(jì)算所進(jìn)行碩士和博士的學(xué)習(xí)。從公開記錄上看,直到碩士為止,包老師的學(xué)習(xí)生涯都顯得有些波瀾不驚。不過從博士開始,十余年的積累開始集中爆發(fā)。
讀博期間,包老師帶領(lǐng)小組設(shè)計(jì)了具有獨(dú)特優(yōu)勢的訪存監(jiān)控系統(tǒng),為斯坦福大學(xué)、EPFL、清華大學(xué)、華為、韓國Hynix等十幾個(gè)機(jī)構(gòu)提供超過2TB的訪存蹤跡數(shù)據(jù);提出了基于路劃分的DMA Cache技術(shù),2014年英特爾才在其高端處理器Xeon芯片中使用了相同的技術(shù)路線,要知道包老師可是08年就已經(jīng)博士畢業(yè)了??;在普林斯頓大學(xué)開展博士后研究,發(fā)布多核基準(zhǔn)測試集PARSEC 3.0版本,被三大體系結(jié)構(gòu)國際頂級(jí)會(huì)議上70%以上的論文使用;提出軟件定義服務(wù)器新架構(gòu)PARD (ASPLOS'15)……
等會(huì),我知道大家現(xiàn)在可能都是一臉懵逼:訪存是什么鬼?路劃分是什么鬼?DMA又是什么鬼?實(shí)際上,這都是包老師的研究項(xiàng)目:計(jì)算機(jī)體系結(jié)構(gòu)的研究內(nèi)容,這項(xiàng)學(xué)科的目的就是想盡一切辦法用改進(jìn)硬件結(jié)構(gòu)和軟件結(jié)構(gòu)的手段提高計(jì)算機(jī)的運(yùn)行效率。
對計(jì)算機(jī)有些了解的同學(xué)可能就納悶了。
計(jì)算機(jī)結(jié)構(gòu)不是很簡單嗎?主板上面插個(gè)CPU,插個(gè)內(nèi)存,再插個(gè)硬盤就能開機(jī)了,實(shí)在想玩游戲再買個(gè)好點(diǎn)的獨(dú)立顯卡,裝個(gè)操作系統(tǒng),跑的不知道多歡實(shí)呀,而且現(xiàn)在CPU運(yùn)算這么快,哪怕看起來超級(jí)復(fù)雜的算式刷刷兩下就算出來了,還怕運(yùn)行效率不高?
然而事實(shí)上與大家想象的相反,正是因?yàn)镃PU的速度越來越快,已經(jīng)遠(yuǎn)遠(yuǎn)超過了計(jì)算機(jī)其他設(shè)備能適應(yīng)的速度,才導(dǎo)致如果不能在微觀層面給出非常合理的計(jì)算架構(gòu),會(huì)讓計(jì)算機(jī)的運(yùn)算能力面臨極大的浪費(fèi)。
且讓我這位靈魂畫手給大家舉個(gè)很簡單的例子,下圖是一個(gè)精簡過的計(jì)算機(jī)結(jié)構(gòu)圖,我們都知道計(jì)算機(jī)的運(yùn)行不是靠一個(gè)部件單獨(dú)完成的,比如說要運(yùn)行一千段代碼,在現(xiàn)代計(jì)算機(jī)的結(jié)構(gòu)里,我們會(huì)先把代碼編寫好存到硬盤里,然后需要運(yùn)行的時(shí)候,先由內(nèi)存將這段代碼調(diào)用至它的存儲(chǔ)空間內(nèi),
然后再通過總線系統(tǒng)一條一條傳送給CPU運(yùn)行,CPU完成運(yùn)行后再將結(jié)果輸出給需要這些結(jié)果的設(shè)備,包括內(nèi)存、硬盤、顯示器等等。但是這里就有一個(gè)問題了!
電腦內(nèi)的器件內(nèi)運(yùn)行時(shí)都有一個(gè)固定的周期,叫時(shí)鐘周期,這些器件進(jìn)行的所有操作都是以N個(gè)時(shí)鐘周期為單位的,這樣可以讓對操作的規(guī)劃和不同器件間的協(xié)調(diào)變得更容易。不過,大家對CPU的主頻一般都很熟悉了:目前大多數(shù)CPU的主頻在2-3GHz這個(gè)區(qū)間內(nèi),然而其他器件的主頻大家關(guān)注過嗎,比如內(nèi)存?
實(shí)際上,內(nèi)存已經(jīng)是為了彌補(bǔ)硬盤的存取速度太慢(相對CPU的處理能力而言)而設(shè)置的一個(gè)用來與CPU配合的“高速”存儲(chǔ)器了,然而現(xiàn)在最流行的DDR3內(nèi)存的主頻普遍只有1600MHz,甚至是1333MHz,只有CPU的一半左右。
這意味著什么呢?我們甚至可以忽略掉內(nèi)存從硬盤中取出需要運(yùn)算的命令的時(shí)間,就假設(shè)內(nèi)存把這些命令送給CPU需要花費(fèi)一個(gè)內(nèi)存周期,而CPU運(yùn)算這些命令需要花費(fèi)一個(gè)CPU周期。這樣一來就是說,在內(nèi)存把一條指令送給CPU之后CPU只要花半個(gè)內(nèi)存周期多一點(diǎn)點(diǎn)就可以算出結(jié)果并且將其送出,而內(nèi)存卻要等至少整整一個(gè)內(nèi)存周期才能把下一條指令送給CPU。
WTF?那剩下的快半個(gè)內(nèi)存周期的時(shí)間CPU干什么?儍看著你吭哧吭哧的跑嗎?
要知道CPU一旦通電,每微妙的耗電都是實(shí)打?qū)嵉挠贸鋈チ?,但是這種頻率的不對等卻讓CPU必須耗費(fèi)大量的時(shí)間白白等待內(nèi)存把數(shù)據(jù)送過來,我們還沒有考慮內(nèi)存在其存儲(chǔ)器內(nèi)部尋找指令的時(shí)間和數(shù)據(jù)在總線上傳輸所花的時(shí)間等等,CPU的利用率已經(jīng)被近乎腰斬,低到了只有60%左右,而且你還要考慮到這是在計(jì)算機(jī)內(nèi)部相對高速的器件內(nèi)存上顯現(xiàn)的結(jié)果。更不用說在無數(shù)服務(wù)器組成的計(jì)算機(jī)群里,這種數(shù)據(jù)的尋找和傳輸需要浪費(fèi)多少寶貴的時(shí)間和能量了。
而現(xiàn)在就是我們包老師登場的時(shí)間了,包老師所研究的科目的目標(biāo),包括上面提到的那些奇怪的詞語,都是為了消除掉這種浪費(fèi),讓電腦內(nèi)的各種器件盡可能的協(xié)調(diào),讓每一個(gè)部件的應(yīng)用效率都達(dá)到最大化。
說到這里大家可能隱隱約約可以明白為什么有些電腦或者手機(jī)紙面數(shù)據(jù)看起來很漂亮,但用起來的體驗(yàn)卻如噩夢一般,而有些數(shù)據(jù)看起來很差的手機(jī)和電腦,用起來卻絲般順滑了。(我才沒有黑Android和Windows → _→ )
不用說,在包括深度學(xué)習(xí)在內(nèi)的各種應(yīng)用對計(jì)算量的需求如此之高的今天,這樣的研究無疑可以幫助企業(yè)和個(gè)人用戶將自己手中設(shè)備的每一絲潛力都發(fā)揮出來,讓他們得到最好的體驗(yàn)。
而需要大量計(jì)算能力的另一項(xiàng)領(lǐng)域是云計(jì)算,云計(jì)算是未來的趨勢之一,這點(diǎn)應(yīng)該沒有任何人有疑問。
而我們的包老師也順應(yīng)這股浪潮,投身進(jìn)了云計(jì)算的研究之中,因?yàn)樗l(fā)現(xiàn),目前的云計(jì)算存在一個(gè)很明顯的瓶頸。
目前云計(jì)算的服務(wù)器,基本都還是基于傳統(tǒng)的馮·諾依曼結(jié)構(gòu)搭建起來的計(jì)算機(jī)(也就是我們每天都能看見的那些)組成的機(jī)群。
在這種結(jié)構(gòu)下,雖然由于多年的經(jīng)驗(yàn),已經(jīng)積累了許多優(yōu)化運(yùn)算效率的方法,但在云計(jì)算中這些方法卻遇到了一個(gè)新的挑戰(zhàn):
云服務(wù)器面對的用戶服務(wù)請求量是非常巨大的,但運(yùn)算量的總量是有限的,無論如何優(yōu)化都不可能超過這個(gè)物理最大值。
因此如果我們想在云服務(wù)中讓計(jì)算設(shè)備的運(yùn)算效率提高,也就意味著服務(wù)器CPU的負(fù)擔(dān)加重,對每條請求的響應(yīng)時(shí)間會(huì)延長。而響應(yīng)時(shí)間是云服務(wù)中至關(guān)重要的指標(biāo),可能會(huì)嚴(yán)重影響用戶體驗(yàn)和最終收入。因此各大數(shù)據(jù)公司不得不被迫強(qiáng)行讓自己的服務(wù)器CPU處于一個(gè)比較低的應(yīng)用率,可謂是有力使不出。
這種浪費(fèi)達(dá)到了什么程度呢:谷歌作為一家在大數(shù)據(jù)處理方面有著頂尖實(shí)力的公司,其在線云服務(wù)的平均CPU利用率大概只有30%,而麥肯錫估計(jì)整個(gè)業(yè)界服務(wù)器平均利用率大約是6%,Gartner的估計(jì)稍樂觀一些,也只有12%
Google的云服務(wù)CPU平均利用率,圖片來自包云崗老師的博客
低的令人發(fā)指啊有沒有!
包老師的團(tuán)隊(duì)在14年就已經(jīng)開始了這項(xiàng)研究,而經(jīng)過不懈努力,他們最終實(shí)現(xiàn)了一個(gè)非常大的突破:借鑒互聯(lián)網(wǎng)曾經(jīng)面對同樣難題的解決方案,在計(jì)算機(jī)內(nèi)部也建立了一種類似于網(wǎng)絡(luò)包標(biāo)簽化機(jī)制的新技術(shù),可以極大的提高云計(jì)算服務(wù)器計(jì)算效率的同時(shí),保證足夠快的響應(yīng)速度。
各位有沒有心動(dòng)?想不想知道包老師到底是怎么做到的?10月21日,包云崗老師將在2016中國計(jì)算機(jī)大會(huì)上報(bào)告自己在這項(xiàng)技術(shù)上的最新研究成果,我們會(huì)贈(zèng)送價(jià)值2300元的非CCF會(huì)員票,憑此票可以參加20-22日包括包老師在內(nèi)的15位嘉賓精彩的特邀報(bào)告、30個(gè)論壇及50場活動(dòng)(除晚宴外)。報(bào)名請掃描下面的二維碼在公眾號(hào)后臺(tái)發(fā)送“CNCC”報(bào)名,我們會(huì)每天從報(bào)名者中選出一名送出門票~~
我們來看看這些大牛都有誰:
當(dāng)然,萬一大家沒有時(shí)間親自前往也沒關(guān)系~屆時(shí)雷鋒網(wǎng)會(huì)對大會(huì)內(nèi)容進(jìn)行詳細(xì)的報(bào)道。大家一定不要錯(cuò)過!
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。