天天看點

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

我們的包雲崗老師在人生中的早期似乎顯得有點默默無聞,雖然這種“默默無聞”也已經足以讓我等學渣服服帖帖的獻上自己的膝蓋。

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

包老師在2003年獲得了南京大學理學學士學位,并進入中科院計算所進行碩士和博士的學習。從公開記錄上看,直到碩士為止,包老師的學習生涯都顯得有些波瀾不驚。不過從博士開始,十餘年的積累開始集中爆發。

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

讀博期間,包老師帶領小組設計了具有獨特優勢的訪存監控系統,為斯坦福大學、epfl、清華大學、華為、南韓hynix等十幾個機構提供超過2tb的訪存蹤迹資料;提出了基于路劃分的dma cache技術,2014年英特爾才在其高端處理器xeon晶片中使用了相同的技術路線,要知道包老師可是08年就已經博士畢業了啊;在普林斯頓大學開展博士後研究,釋出多核基準測試集parsec 3.0版本,被三大體系結構國際頂級會議上70%以上的論文使用;提出軟體定義伺服器新架構pard (asplos'15)……

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

等會,我知道大家現在可能都是一臉懵逼:訪存是什麼鬼?路劃分是什麼鬼?dma又是什麼鬼?實際上,這都是包老師的研究項目:計算機體系結構的研究内容,這項學科的目的就是想盡一切辦法用改進硬體結構和軟體結構的手段提高計算機的運作效率。

對計算機有些了解的同學可能就納悶了。

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

計算機結構不是很簡單嗎?主機闆上面插個cpu,插個記憶體,再插個硬碟就能開機了,實在想玩遊戲再買個好點的獨立顯示卡,裝個作業系統,跑的不知道多歡實呀,而且現在cpu運算這麼快,哪怕看起來超級複雜的算式刷刷兩下就算出來了,還怕運作效率不高?

然而事實上與大家想象的相反,正是因為cpu的速度越來越快,已經遠遠超過了計算機其他裝置能适應的速度,才導緻如果不能在微觀層面給出非常合理的計算架構,會讓計算機的運算能力面臨極大的浪費。

且讓我這位靈魂畫手給大家舉個很簡單的例子,下圖是一個精簡過的計算機結構圖,我們都知道計算機的運作不是靠一個部件單獨完成的,比如說要運作一千段代碼,在現代計算機的結構裡,我們會先把代碼編寫好存到硬碟裡,然後需要運作的時候,先由記憶體将這段代碼調用至它的存儲空間内,

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

然後再通過總線系統一條一條傳送給cpu運作,cpu完成運作後再将結果輸出給需要這些結果的裝置,包括記憶體、硬碟、顯示器等等。但是這裡就有一個問題了!

電腦内的器件内運作時都有一個固定的周期,叫時鐘周期,這些器件進行的所有操作都是以n個時鐘周期為機關的,這樣可以讓對操作的規劃和不同器件間的協調變得更容易。不過,大家對cpu的主頻一般都很熟悉了:目前大多數cpu的主頻在2-3ghz這個區間内,然而其他器件的主頻大家關注過嗎,比如記憶體?

實際上,記憶體已經是為了彌補硬碟的存取速度太慢(相對cpu的處理能力而言)而設定的一個用來與cpu配合的“高速”存儲器了,然而現在最流行的ddr3記憶體的主頻普遍隻有1600mhz,甚至是1333mhz,隻有cpu的一半左右。

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

這意味着什麼呢?我們甚至可以忽略掉記憶體從硬碟中取出需要運算的指令的時間,就假設記憶體把這些指令送給cpu需要花費一個記憶體周期,而cpu運算這些指令需要花費一個cpu周期。這樣一來就是說,在記憶體把一條指令送給cpu之後cpu隻要花半個記憶體周期多一點點就可以算出結果并且将其送出,而記憶體卻要等至少整整一個記憶體周期才能把下一條指令送給cpu。

wtf?那剩下的快半個記憶體周期的時間cpu幹什麼?儍看着你吭哧吭哧的跑嗎?

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

要知道cpu一旦通電,每微妙的耗電都是實打實的用出去了,但是這種頻率的不對等卻讓cpu必須耗費大量的時間白白等待記憶體把資料送過來,我們還沒有考慮記憶體在其存儲器内部尋找指令的時間和資料在總線上傳輸所花的時間等等,cpu的使用率已經被近乎腰斬,低到了隻有60%左右,而且你還要考慮到這是在計算機内部相對高速的器件記憶體上顯現的結果。更不用說在無數伺服器組成的計算機群裡,這種資料的尋找和傳輸需要浪費多少寶貴的時間和能量了。

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

而現在就是我們包老師登場的時間了,包老師所研究的科目的目标,包括上面提到的那些奇怪的詞語,都是為了消除掉這種浪費,讓電腦内的各種器件盡可能的協調,讓每一個部件的應用效率都達到最大化。

說到這裡大家可能隐隐約約可以明白為什麼有些電腦或者手機紙面資料看起來很漂亮,但用起來的體驗卻如噩夢一般,而有些資料看起來很差的手機和電腦,用起來卻絲般順滑了。(我才沒有黑android和windows → _→ )

不用說,在包括深度學習在内的各種應用對計算量的需求如此之高的今天,這樣的研究無疑可以幫助企業和個人使用者将自己手中裝置的每一絲潛力都發揮出來,讓他們得到最好的體驗。

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

而需要大量計算能力的另一項領域是雲計算,雲計算是未來的趨勢之一,這點應該沒有任何人有疑問。

而我們的包老師也順應這股浪潮,投身進了雲計算的研究之中,因為他發現,目前的雲計算存在一個很明顯的瓶頸。

目前雲計算的伺服器,基本都還是基于傳統的馮·諾依曼結構搭建起來的計算機(也就是我們每天都能看見的那些)組成的機群。

在這種結構下,雖然由于多年的經驗,已經積累了許多優化運算效率的方法,但在雲計算中這些方法卻遇到了一個新的挑戰:

雲伺服器面對的使用者服務請求量是非常巨大的,但運算量的總量是有限的,無論如何優化都不可能超過這個實體最大值。

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

是以如果我們想在雲服務中讓計算裝置的運算效率提高,也就意味着伺服器cpu的負擔加重,對每條請求的響應時間會延長。而響應時間是雲服務中至關重要的名額,可能會嚴重影響使用者體驗和最終收入。是以各大資料公司不得不被迫強行讓自己的伺服器cpu處于一個比較低的應用率,可謂是有力使不出。

這種浪費達到了什麼程度呢:谷歌作為一家在大資料處理方面有着頂尖實力的公司,其線上雲服務的平均cpu使用率大概隻有30%,而麥肯錫估計整個業界伺服器平均使用率大約是6%,gartner的估計稍樂觀一些,也隻有12%

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

低的令人發指啊有沒有!

包老師的團隊在14年就已經開始了這項研究,而經過不懈努力,他們最終實作了一個非常大的突破:借鑒網際網路曾經面對同樣難題的解決方案,在計算機内部也建立了一種類似于網絡包标簽化機制的新技術,可以極大的提高雲計算伺服器計算效率的同時,保證足夠快的響應速度。

各位有沒有心動?想不想知道包老師到底是怎麼做到的?10月21日,包雲崗老師将在2016中國計算機大會上報告自己在這項技術上的最新研究成果,我們會贈送價值2300元的非ccf會員票,憑此票可以參加20-22日包括包老師在内的15位嘉賓精彩的特邀報告、30個論壇及50場活動(除晚宴外)。報名請掃描下面的二維碼在公衆号背景發送“cncc”報名,我們會每天從報名者中選出一名送出門票~~

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

我們來看看這些大牛都有誰:

CNCC人物 | 看看中科院計算所的這位“包大神”怎麼給雲計算帶來質的飛躍

當然,萬一大家沒有時間親自前往也沒關系~屆時雷鋒網(公衆号:雷鋒網)會對大會内容進行詳細的報道。大家一定不要錯過!

本文作者:黃鑫

繼續閱讀