第100章 工程院院士,高穩

投票推薦 加入書籤 小說報錯

  第100章 工程院院士,高穩

  燕大,信息科學技術學院。

  理科教學樓的一間大型多媒體階梯教室里,此刻已經是座無虛席。

  不僅是過道上加了塞,連後排的空地和窗台上都擠滿了慕名而來的旁聽生。

  高穩作為燕大計算機體系結構與底層算法領域的真神,華夏工程院院士。

  平時也很少給本科生上基礎課。

  今天這堂《底層算法與高性能計算架構》,其實是面向大一新生的開學第一課,也是他這學期為數不多親自登台的專業導論課。

  正因如此,不僅信科本院的學生們都來了,就連外院的學霸們也聞風而動,只為了一睹真神的風采。

  高院士站在講台上,手裡的粉筆,在黑板上畫著底層系統架構的邏輯圖。

  「在NUMA架構下,多核心並發並不是簡單的線程疊加。」

  「當兩個線程同時修改同一個緩存行內的不同獨立變量時,就會觸發偽共享陷阱。」

  「這個時候,MESI緩存一致性協議就會在底層的物理總線上,引發一場納秒級的無效數據沖刷風暴,直接把你們引以為傲的並發算力拖成龜速!」

  高院主在講台上侃侃而談,台下的夫=新生們都聽懵逼了。

  雖然高院士講的邏輯很清楚,一環扣一環的,他們能聽懂這其中的因果關係O

  可是這些底層硬體、緩存一致性協議的專業概念,他們現在還沒有接觸過啊,這特麼是一堂面向大一新生的導論課該講的東西?

  事實上,到了院士這個級別,他們站在講台上,從來就不是為了教學生某個具體的知識點。

  他們傳授的,是一條路,一種全新的思維邏輯,一個能打破常規的破局方向一至於教那些具體的知識?

  比如怎麼去寫C++的基礎語法?

  怎麼去聲明一個變量?

  怎麼去調用那些現成的API接口?

  別說高院士這位工程院院士了,就是燕大信科里隨便拉出來一個教授,都不會去講!

  因為在這些燕大頂尖學者的眼中,那些像查字典一樣的編程工具和語言規範,難道不是你們這群能考進燕大的天之驕子們,自己在寢室里熬兩個通宵就能自學學會的東西嗎?

  這種基礎的玩意兒,哪裡用得著大學教授站在講台上浪費時間去教?

  這就是華夏最高學府的門檻與調性!

  台下的學生們雖然懵,但依然瘋狂的記錄著,指望回去慢慢消化。

  高院士這時停了下來,嚴肅的說道。

  「把筆都放下,不用記筆記。」

  「你們要是邊聽邊記,是跟不上我的節奏的。」

  此話一出,台下那些正瘋狂做筆記的新生們,臉瞬間就紅了。

  就在他們為自己無知行為感到羞恥的時候,高院士突然笑道。

  「但是你們可以用手機錄,那玩意兒能跟上————」

  台下發出了一陣鬨笑聲。

  他們這群天之驕子此時才真正意識到,大學和高中真的不同。

  知識也好,老師也好。

  而坐在階梯教室最後一排的李東,也是越聽越興奮!

  別人聽不懂,他可以呀!

  「原來多線程並發時的緩存一致性問題,本質上就是物理層面上的數據競爭映射————」

  「叮鈴鈴。」

  下課鈴聲響起。

  高院士直接說道。

  「這節課就到這裡,下課。」

  李東猛的起身,抓起自己的背包就準備衝下講台去問問題。

  然而,他以前在江城七中養成的習慣讓他吃了大虧。

  他坐的是最後一排,等他好不容易跑到講台邊上的時候。

  他人都傻了。

  「七中誤我!」

  此時的高院士身邊早就圍滿了熱情的學霸。

  「高老師,關於那個緩存行對齊的問題————」


  「高老師,多線程鎖的開銷在實際工程中怎麼量化————」

  李東只能無奈的站在最外圍,等著前面的同學先問完。

  十幾分鐘過去了,眼看著快到了下一節課的上課時間。

  高院士才對著周圍的學生擺了擺手。

  「好了,同學們,你們先去上下一節課吧,剩下的問題,你們可以問你們的任課教授。」

  大家雖然挺失望的,但也不能不上下一節課呀,只能無奈散開。

  高院士走出了階梯教室。

  李東見狀也跟了上去。

  走廊上,高院士察覺到後面有人跟著,回過頭看了看李東。

  「同學,」高院士笑著問道。

  「你不上課嗎?」

  李東說道。

  「我不是這個班的。」

  高院士愣了一下,隨即反應了過來。

  「元培的?」

  李東點了點頭。

  「哈。」高院士一下子就笑了出來。

  他在元培學院那邊其實也是有掛課的,但像這種大一剛開學,就不去上自己院系的通識課,直接跑來信科學院的學生,有是有,但確實比較少見。

  「走吧。」高院士招了招手,帶著李東穿過理科樓的連廊,來到了他在信科學院的獨立辦公室。

  推門進去,高院士在辦公桌前坐下,示意李東也坐,隨口問道。

  「怎麼?課上有什麼沒聽懂的地方嗎?」

  李東搖了搖頭。

  「都聽懂了,您講得深入淺出,把底層硬體和軟體算法的關係剖析得特別透徹。」

  高院士聽完,忍不住笑了。

  這學生挺有趣的啊。

  大一新生能聽懂多少底層並發?

  這小馬屁拍得不顯山不露水的,情商蠻高的嘛。

  而坐在對面的李東,完全不知道自己說了大實話,反而被人當成了高情商。

  「那你跟著我來辦公室,是想問什麼?」

  高院士饒有興趣的看著他。

  李東直接問道。

  「高老師,我最近在研究關於計算黎曼Zeta函數非平凡零點的底層算法優化。」

  「我想在這個多點求值(multipleevaluations)的基礎上,進一步優化它的內存分配,嘗試把計算規模推到萬億級甚至更高的極高階區間。」

  「但在利用FFT對Zeta函數進行大規模網格展開時,底層內存的調用邏輯我總是處理不好。」

  「當網格規模放大到千萬級、億級時,算力冗餘太大,經常引起嚴重的內存碎片化或者緩存未命中。」

  李東將自己對《黎曼手稿》嵌套進程式語言的一些遇到的問題說了出來。

  「所以怎麼才可以在不改變整體數學時間複雜度的情況下,重構C++底層的內存排布方式呢?然後最大限度地迎合CPU的緩存預取機制?」

  高院士在聽到李東這番話後,放下保溫杯。

  他特別喜歡這種會自己深度思考的學生。

  他仔細想了想剛才李東說的內存分配邏輯,雖然他不能僅僅通過幾個問題就完全看透李東那套降維算法。

  畢竟他也不是專攻數學的。

  但他還是發現了這套框架在硬體調度上的一些弱點。

  「你的思路和正常學生很不一樣,切入點很偏,但非常有意思。」

  高院士拿起一支筆,在紙上畫了一個簡單的內存分塊圖。

  「既然用了FFT做多點求值,你不能用常規的連續內存分配去想。」

  「位反轉置換會徹底打斷CPU緩存的空間局部性。」

  「你得手動做分塊處理,把龐大的網格矩陣切分成能完全塞進L2緩存的小塊,在小塊內部完成運算後再寫回主存。」

  高院士耐心的給李東講解著內存對齊的精髓,句句都是乾貨。

  李東聽著高院士的話,【代碼直覺】瞬間將這些概念具象化。


  「我明白了!謝謝高老師!」

  李東是真心的感謝,這就是有名師的好處,他們可能不像李東一樣有外掛,但是也沒見牛頓他們有外掛呀,可是依然不影響他們的牛逼。

  問完核心的學術問題後,李東突然想起了一個很現實的問題。

  他的聯想電腦到現在都還開不了機,也還沒去買新的。

  所以他有些不好意思的問道。

  「那個————高老師,咱們學校能申請用機房嗎?」

  高院士正喝著茶,聽到這個問題,差點沒嗆到。

  「我們學校的機房都是公用資源,」

  高院士有些哭笑不得的解釋道。

  「你直接拿著你的校園卡去刷卡就能進去用。」

  「當然,如果你需要跑超大規模的算力,可以在校園網上用學號申請超算中心的節點。」

  李東這才恍然大悟。

  高院士看著眼前這個有些迷糊的少年,越發覺得有意思了。

  「同學,你叫什麼名字?」高院士微笑著問道。

  「我叫李東。」

  「李東————」高院士點了點頭,把這個名字記在了心裡。

章節目錄