contentstart
燕大,資訊科學技術學院。
理科教學樓的一間大型多媒體階梯教室裡,此刻已經是座無虛席。
不僅是過道上加了塞,連後排的空地和窗台上都擠滿了慕名而來的旁聽生。
高穩作為燕大計算機體繫結構與底層演演算法領域的真神,華夏工程院院士。
平時也很少給本科生上基礎課。
今天這堂《底層演演算法與高效能計算架構》,其實是麵向大一新生的開學第一課,也是他這學期為數不多親自登台的專業導論課。
正因如此,不僅信科本院的學生們都來了,就連外院的學霸們也聞風而動,隻為了一睹真神的風采。
高院士站在講台上,手裡的粉筆,在黑板上畫著底層係統架構的邏輯圖。
“在NUMA架構下,多核心併發並不是簡單的執行緒疊加。”
“當兩個執行緒同時修改同一個快取行內的不同獨立變數時,就會觸發偽共享陷阱。”
“這個時候,MESI快取一致性協議就會在底層的物理匯流排上,引發一場納秒級的無效資料沖刷風暴,直接把你們引以為傲的併發算力拖成龜速!”
高院士在講台上侃侃而談,台下的大一新生們都聽懵逼了。
雖然高院士講的邏輯很清楚,一環扣一環的,他們能聽懂這其中的因果關係。
可是這些底層硬體、快取一致性協議的專業概念,他們現在還冇有接觸過啊,這特麼是一堂麵向大一新生的導論課該講的東西?
事實上,到了院士這個級彆,他們站在講台上,從來就不是為了教學生某個具體的知識點。
他們傳授的,是一條路,一種全新的思維邏輯,一個能打破常規的破局方向!
至於教那些具體的知識?
比如怎麼去寫C 的基礎語法?
怎麼去宣告一個變數?
怎麼去呼叫那些現成的API介麵?
彆說高院士這位工程院院士了,就是燕大信科裡隨便拉出來一個教授,都不會去講!
因為在這些燕大頂尖學者的眼中,那些像查字典一樣的程式設計工具和語言規範,難道不是你們這群能考進燕大的天之驕子們,自己在寢室裡熬兩個通宵就能自學學會的東西嗎?
這種基礎的玩意兒,哪裡用得著大學教授站在講台上浪費時間去教?
這就是華夏最高學府的門檻與調性!
台下的學生們雖然懵,但依然瘋狂的記錄著,指望回去慢慢消化。
高院士這時停了下來,嚴肅的說道。
“把筆都放下,不用記筆記。”
“你們要是邊聽邊記,是跟不上我的節奏的。”
此話一出,台下那些正瘋狂做筆記的新生們,臉瞬間就紅了。
就在他們為自己無知行為感到羞恥的時候,高院士突然笑道。
“但是你們可以用手機錄,那玩意兒能跟上……”
台下發出了一陣鬨笑聲。
他們這群天之驕子此時才真正意識到,大學和高中真的不同。
知識也好,老師也好。
而坐在階梯教室最後一排的李東,也是越聽越興奮!
彆人聽不懂,他可以呀!
“原來多執行緒併發時的快取一致性問題,本質上就是物理層麵上的資料競爭對映……”
“叮鈴鈴。”
下課鈴聲響起。
高院士直接說道。
“這節課就到這裡,下課。”
李東猛的起身,抓起自己的揹包就準備衝下講台去問問題。
然而,他以前在江城七中養成的習慣讓他吃了大虧。
他坐的是最後一排,等他好不容易跑到講台邊上的時候。
他人都傻了。
“七中誤我!”
此時的高院士身邊早就圍滿了熱情的學霸。
“高老師,關於那個快取行對齊的問題……”
“高老師,多執行緒鎖的開銷在實際工程中怎麼量化……”
李東隻能無奈的站在最外圍,等著前麵的同學先問完。
十幾分鐘過去了,眼看著快到了下一節課的上課時間。
高院士纔對著周圍的學生擺了擺手。
“好了,同學們,你們先去上下一節課吧,剩下的問題,你們可以問你們的任課教授。”
大家雖然挺失望的,但也不能不上下一節課呀,隻能無奈散開。
高院士走出了階梯教室。
李東見狀也跟了上去。
走廊上,高院士察覺到後麵有人跟著,回過頭看了看李東。
“同學,”高院士笑著問道。
“你不上課嗎?”
李東說道。
“我不是這個班的。”
高院士愣了一下,隨即反應了過來。
“元培的?”
李東點了點頭。
“哈。”高院士一下子就笑了出來。
他在元培學院那邊其實也是有掛課的,但像這種大一剛開學,就不去上自己院係的通識課,直接跑來信科學院的學生,有是有,但確實比較少見。
“走吧。”高院士招了招手,帶著李東穿過理科樓的連廊,來到了他在信科學院的獨立辦公室。
推門進去,高院士在辦公桌前坐下,示意李東也坐,隨口問道。
“怎麼?課上有什麼冇聽懂的地方嗎?”
李東搖了搖頭。
“都聽懂了,您講得深入淺出,把底層硬體和軟體演演算法的關係剖析得特彆透徹。”
高院士聽完,忍不住笑了。
這學生挺有趣的啊。
大一新生能聽懂多少底層併發?
這小馬屁拍得不顯山不露水的,情商蠻高的嘛。
而坐在對麵的李東,完全不知道自己說了大實話,反而被人當成了高情商。
“那你跟著我來辦公室,是想問什麼?”
高院士饒有興趣的看著他。
李東直接問道。
“高老師,我最近在研究關於計算黎曼Zeta函式非平凡零點的底層演演算法優化。”
“我想在這個多點求值(multiple
evaluations)的基礎上,進一步優化它的記憶體分配,嘗試把計算規模推到萬億級甚至更高的極高階區間。”
“但在利用FFT對Zeta函式進行大規模網格展開時,底層記憶體的呼叫邏輯我總是處理不好。”
“當網格規模放大到千萬級、億級時,算力冗餘太大,經常引起嚴重的記憶體碎片化或者快取未命中。”
李東將自己對《黎曼手稿》巢狀進程式語言的一些遇到的問題說了出來。
“所以怎麼纔可以在不改變整體數學時間複雜度的情況下,重構C 底層的記憶體排布方式呢?然後最大限度地迎合CPU的快取預取機製?”
高院士在聽到李東這番話後,放下保溫杯。
他特彆喜歡這種會自己深度思考的學生。
他仔細想了想剛纔李東說的記憶體分配邏輯,雖然他不能僅僅通過幾個問題就完全看透李東那套降維演演算法。
畢竟他也不是專攻數學的。
但他還是發現了這套框架在硬體排程上的一些弱點。
“你的思路和正常學生很不一樣,切入點很偏,但非常有意思。”
高院士拿起一支筆,在紙上畫了一個簡單的記憶體分塊圖。
“既然用了FFT做多點求值,你不能用常規的連續記憶體分配去想。”
“位反轉置換會徹底打斷CPU快取的空間區域性性。”
“你得手動做分塊處理,把龐大的網格矩陣切分成能完全塞進
L2快取的小塊,在小塊內部完成運算後再寫回主存。”
高院士耐心的給李東講解著記憶體對齊的精髓,句句都是乾貨。
李東聽著高院士的話,【程式碼直覺】瞬間將這些概念具象化。
“我明白了!謝謝高老師!”
李東是真心的感謝,這就是有名師的好處,他們可能不像李東一樣有外掛,但是也冇見牛頓他們有外掛呀,可是依然不影響他們的牛逼。
問完核心的學術問題後,李東突然想起了一個很現實的問題。
他的聯想電腦到現在都還開不了機,也還冇去買新的。
所以他有些不好意思的問道。
“那個……高老師,咱們學校能申請用機房嗎?”
高院士正喝著茶,聽到這個問題,差點冇嗆到。
“我們學校的機房都是公用資源,”
高院士有些哭笑不得的解釋道。
“你直接拿著你的校園卡去刷卡就能進去用。”
“當然,如果你需要跑超大規模的算力,可以在校園網上用學號申請超算中心的節點。”
李東這才恍然大悟。
高院士看著眼前這個有些迷糊的少年,越發覺得有意思了。
“同學,你叫什麼名字?”高院士微笑著問道。
“我叫李東。”
“李東……”高院士點了點頭,把這個名字記在了心裡。
contentend