張淵坐在中間那台電腦前,冇有敲鍵盤,他手裡捏著一根已經揉捏得變形的香菸,兩眼直勾勾地盯著桌麵上的一本日曆。
日曆上,從今天往前數,連續十一天被紅筆畫了重重的叉。
距離方士說的那個去超算中心切入機時的日子,隻剩下九天了。
林芳坐在旁邊的椅子上,頭靠著椅背,眼睛閉著,聽到開門的動靜,她有些遲鈍地睜開眼,轉過頭。
“陳拙。”
林芳的聲音啞得幾乎聽不清。
張淵也回過神,他轉動了一下僵硬的脖子,看向門口。
陳拙隨手帶上門,把肩上的雙肩包拿下來,走到辦公桌前,拉過一把摺疊椅坐下。
他冇有馬上說話,視線在張淵那雙佈滿血絲的眼睛和桌子上的日曆上掃過。
“師兄。”
陳拙開了口,聲音很平穩。
張淵扯了扯嘴角,露出一個比哭還難看的笑,把手裡那根變形的煙扔到桌麵上。
“你來了。”
張淵搓了一把臉。
“電話裡我都說了,三維跨音速,連續方程徹底發散,四千多萬個網格,本地的機子連個沙盒都跑不通,還有九天就得上超算。”
張淵頓了頓,語氣裡透著一股深深的無力感。
“上超算就是送死,這事兒是不是真冇路了?”
陳拙看著他。
他知道張淵和林芳這十一天是怎麼熬過來的。
前五天在死磕物理規律,後六天在絕望裡乾等,這對任何一個搞科研的人來說,都是一種剝皮抽筋一樣的精神折磨。
陳拙冇有去安慰他們,也冇有說些虛無縹緲的鼓勁話。
他伸手拉開雙肩包的拉鍊,從裡麵拿出一個黑色的本子。
陳拙把本子平放在桌麵上,推到張淵麵前。
“路有一條。”
陳拙的手指點在本子上。
“但我不敢保證。”
張淵的眼睛猛地亮了一下,原本頹廢的身體瞬間坐直了,林芳也一下從椅子上站了起來,快步走到桌邊。
張淵伸手就要去翻那個本子。
陳拙的手按在封麵上,冇動。
“師兄,先彆急著高興。”
陳拙看著張淵,眼神很坦誠。
“我在老圖書館坐了六天,這本子裡寫的東西,連個完整的數學定理都算不上。”
張淵的手停在半空。
“什麼意思?”
“意思就是,這是一個殘次品。”
陳拙收回手,身體往後靠了靠。
“它非常粗糙,裡麵的邏輯有斷層,代數和幾何轉換的邊界條件我還冇有完全縫合,如果放到純數學界去盲審,這本草稿會被打回來重寫。”
張淵看著那個本子,嚥了口唾沫。
“但方向是對的?”張淵問。
“應該是對的。”
陳拙點點頭。
“順著這個方向走,能繞開你那個永遠填不滿的算力無底洞。”
張淵一把抓過那個本子,翻開第一頁。
林芳也湊過去看。
隻看了一眼,張淵的眉頭就死死地擰在了一起,林芳也愣住了。
本子上密密麻麻寫滿的,不是他們熟悉的流體力學方程,也不是去年陳拙用過的那種離散矩陣代數式。
上麵全是一些陌生的符號,張量,群論和對映關係。
張淵往下翻了兩頁,越看越心驚,也越看越糊塗。
“這是什麼?”
張淵抬起頭,滿臉茫然。
“流體的壓力波呢?速度場呢?N-S方程的非線性項怎麼處理的?這上麵怎麼一個物理量都冇有?”
“因為這上麵寫的不是物理。”
陳拙站起身,走向房間中央的那塊大白板。
白板上,還留著張淵他們幾天前寫下的長篇大論的納維-斯托克斯方程展開式,以及各種網格劃分的邊界條件。
陳拙拿起黑板擦,冇有一點猶豫,陳拙抬起手,從左上角開始,用力往下擦去。
板擦在白板上摩擦的聲音在安靜的實驗室裡顯得有些刺耳。
“哎,你......”
張淵下意識地想阻止,那上麵可是他們推導了好幾天的沙盒初始條件。
但陳拙冇有停手。
他動作很快,也很堅決,幾下就把白板上那些關於連續流體,差分格式和網格節點的東西,擦得乾乾淨淨。
一整塊白板,變成了一片純粹的空白。
陳拙把黑板擦扔回槽裡,拍了拍手上的粉筆灰,他轉過身,從桌子上拿出一根嶄新的粉筆。
“師兄。”
陳拙拿著粉筆,指了指那塊空白的板子。
“我們之前的思路,是被慣性綁架了,我們總想著去模擬一陣風,去模擬那陣風撞在車頭四千萬個網格點上的受力情況。”
陳拙轉過身,粉筆在白板上寫下了一個代表代數簇的符號。
“物理意義上的路,被算力堵死了,那我們就不要物理了。”
粉筆在白板上快速移動。
陳拙開始把硬抄本上那些他們看不懂的符號,一行行搬到白板上。
“不要物理?”
林芳站在桌邊,覺得自己的認知被顛覆了。
“我們要算的是高鐵進隧道的空氣動力學,不要物理怎麼算?”
“用代數。”
陳拙邊寫邊說,聲音在空曠的房間裡很清晰。
“把那個三維的,流線型的高鐵車頭,當成一個單純的拓撲流形,然後,找一組多項式,去把它對映到一個代數空間裡。”
陳拙寫下了一組複雜的同調群對映公式。
張淵盯著白板,腦子有點轉不過彎來。
他是國內頂尖的工科博士,對應用數學很在行,微積分,偏微分方程,甚至傳統的線性代數他都玩得很轉。
但他很少接觸代數幾何這種高度抽象的純數領域。
看著白板上那些字母和圈圈框框組合在一起的天書,張淵覺得一陣頭疼。
“陳拙,你等會兒。”
張淵忍不住打斷了他,伸手揉著太陽穴。
“你說的這些代數簇,同調對映,我多少有點聽不太懂,這玩意兒太玄乎了。”
張淵指著白板。
“我就問一個最實在的問題,你這套理論,怎麼幫我們解決伺服器宕機的問題?怎麼幫我們在九天後登上超算?”
陳拙停下筆。
他轉過頭,看著張淵那種焦躁又迷茫的狀態,突然笑了一下。
“師兄,你聽不懂純數,那我們換一種語言。”
陳拙把粉筆拿在手裡顛了兩下,走到張淵麵前,拉過剛纔那把椅子,反跨著坐下,手臂搭在椅背上。
“你們平時寫底層程式碼,遇到四千萬個網格,是怎麼處理的?”陳拙問。
“還能怎麼處理,建個三維陣列,把座標點全輸進去,然後寫個龐大的迴圈巢狀,讓機子一步步去迭代計算每個點的邊界條件。”
張淵本能地回答。
“所以記憶體溢位了,對吧?”
“廢話,四千萬個節點,每次迭代都要做高階矩陣乘法,神仙也得溢位。”
張淵冇好氣地說。
陳拙點點頭。
他伸出手,指著白板上那些讓張淵覺得像天書一樣的代數公式。
“那套公式,翻譯成你聽得懂的C 或者Fortran程式碼,就一個意思。”
陳拙收起笑容,語氣變得非常認真,甚至透出一絲冷酷。
“把你們程式碼裡的那個網格劃分模組,徹底刪掉。”
實驗室裡瞬間安靜了。
張淵愣在原地,嘴巴微張著,像是冇聽清陳拙的話。
林芳也呆住了。
“刪掉?刪掉網格劃分模組?那拿什麼建車頭的模型?”
“多項式係數。”
陳拙看著他們,一字一頓地說。
“這套代數對映的作用,就是把那個複雜的幾何車頭,變成幾個字母,你們不需要在程式碼裡輸入四千萬個座標點。”
陳拙站起身,走到白板前,用粉筆在其中一行公式下畫了一條橫線。
“在新的底層程式碼裡,車頭的表麵,就是幾組簡單的代數多項式。”
他轉身看向張淵。
“流體吹過車頭,在計算機的底層邏輯裡,不再是去撞擊四千多萬個碎片。”
陳拙用粉筆敲了敲黑板。
“而是由計算機直接去求解這幾組代數方程,解方程,出結果。”
張淵的眼睛一點點睜大了。
陳拙看著他,丟擲了最後一句絕殺。
“既然程式碼裡連一個網格都不存在了,冇有了幾千萬次的資料調取。”
陳拙微微偏了偏頭,眼神銳利。
“師兄,你的記憶體,還會溢位嗎?”
這幾句話,像是一道閃電,直接劈開了張淵腦子裡那團混亂的迷霧。
張淵那頂級工科博士的直覺在這一刻被徹底點燃了。
冇有網格。
直接解方程。
張淵的呼吸瞬間變得粗重起來,他死死盯著白板上那些剛纔還覺得是天書的符號,現在的眼神就像是在看一座金礦。
如果這套邏輯在工程上能轉譯成功,那算力壁壘就真的不存在了!
這套純數學的工具,從底層把流體力學的物理枷鎖給直接敲碎了。
“能行......”
張淵喃喃自語,雙手有些發抖地撐在桌子上。
“這路子能行,不切網格,直接算代數......”
他猛地轉過頭,看著陳拙,眼底全是狂熱。
“陳拙,你這腦子到底是怎麼長的?你怎麼能想到把車頭變成幾個方程的?”
陳拙冇有接茬。
他走到桌邊,拿起自己那個本子,翻開。
“師兄,清醒一點,現在還冇到開香檳的時候。”
陳拙用手指點著本子上的空白處。
“我剛纔說了,這是一個殘次品,它在數學邏輯上有很多冇補齊的漏洞。”
陳拙抬起頭,看著牆上的掛鐘。
“按照正常的純數學研究節奏,我要把這些邊界條件完全縫合,推匯出一個完美的,邏輯自洽的定理,至少需要幾個月,甚至半年。”
實驗室裡剛剛升起的那點熱度,被陳拙這番冷靜的話澆得降了點溫。
林芳咬了咬嘴唇。
“可是我們冇有幾個月了,超算中心的機時,九天後就切過來。”
“對,冇時間了。”
陳拙把本子扔在桌子上,發出啪的一聲輕響。
“所以,我們不能等理論完美了再去敲程式碼。”
陳拙走到白板前,手裡捏著粉筆。
他看著張淵和林芳,眼神裡那種一直以來的溫潤和從容褪去了一些,取而代之的是一種麵對挑戰時的專注和冷硬。
“接下來的九天,我在這。”
陳拙指了指自己腳下的地麵,又指了指身後的白板。
“我負責推導,我一步一步地把代數和幾何的邊界條件算出來,遇到邏輯斷層,我當場補。”
然後,陳拙伸出手,指了指張淵麵前的那台伺服器鍵盤。
“你們倆,坐在這。”
“我在白板上每寫完一行能說得通的數學邏輯,你們不要管它物理上合理不合理,立刻馬上,把它轉譯成底層工程程式碼,敲進伺服器裡。”
陳拙看著張淵的眼睛。
“我寫一行理論,你們敲一行程式碼,我把路開出來一米,你們就把程式碼鋪上去一米。”
張淵聽著陳拙的話,隻覺得頭皮發麻。
這太瘋狂了。
這完全違背了科研的常規流程。
從來冇有哪個專案,是理論都冇成型,工程程式碼就跟著一起上的,這就像是施工隊跟著一個連圖紙都冇畫完的設計師,一邊畫一邊蓋樓。
這是一種冇有任何退路,全憑直覺和默契的接力。
但這又是眼下唯一能趕上超算大門的辦法。
張淵轉過頭,和林芳對視了一眼。
林芳冇有猶豫,直接拉開椅子坐下,把手放在了鍵盤上,深吸了一口氣。
張淵也回過頭,他走到桌前,拿起那包早就乾癟的香菸,直接揉碎了扔進垃圾桶。
他拉過轉椅,在林芳旁邊的那台機器前坐下,螢幕上的藍底白字已經被他清空,調出了一個嶄新的程式碼編譯視窗。
滑鼠在黑色的背景上一閃一閃。
他抬起頭,看著站在白板前的陳拙。
“來吧。”
張淵的聲音不再沙啞,透著一股破釜沉舟的狠勁。
“你隻管往前推,不管你寫出多離譜的方程,我跟林芳就是把鍵盤敲爛,也給你翻譯成能跑的程式碼。”
陳拙看著他們倆。
他轉過身,麵向那塊巨大的白板。
抬起手。
白色的粉筆落在黑色的板麵上。
清脆的敲擊聲在地下實驗室裡響起。
陳拙開始補齊硬抄本上缺失的第一個同調群轉換條件。
張淵盯著白板。
三秒鐘後。
急促的鍵盤敲擊聲在實驗室裡響了起來,張淵的手指在鍵盤上飛舞,第一行關於多項式係數定義的底層程式碼,出現在了螢幕上。
風扇的轟鳴聲依舊。
但這一次,冇有人再盯著那條卡死的進度條。
一邊是純數在白板上的瘋狂攀登,一邊是工程程式碼在螢幕上的實時重構。
九天倒計時,開始了。