第一百二十章 超級機器——銀河-I
第120章 超級機器——銀河-I
第二天下午,閱覽室被正式改成了課題組的工作室。
方宜民帶著方磊和宋知行把原來靠牆的書架挪到走廊里,騰出的位置擺了三張從數學所倉庫里搬來的舊書桌。
書桌是六十年代的,桌面上鋪著綠色的氈子,邊角被磨得發亮,氈子上有墨水漬和茶杯底燙出來的圓印子。
數學所的管理員說這些桌子是錢老那個年代用的,方磊聽了以後擦桌子的動作都輕了三分。
機器也來了。
鄒世明親自開著一輛麵包車送來的。
一台386微機,米白色的機箱,十四寸的CRT顯示器,屏幕是球面的,關機的時候映出窗戶和人的倒影。
鄒世明把機器搬進閱覽室的時候,全課題組的人都圍上來了,像圍觀一個新生的嬰兒。
「這是中關村電子一條街上現在能攢出來的最好的機器,」鄒世明把電源線插上,按了一下開機鍵。
機箱裡發出一聲輕微的蜂鳴,屏幕亮起來,一片幽幽的綠光,D0S提示符在左上角一
閃一閃。
「80386的晶片,4兆內存,40兆硬碟,浮點運算靠軟體模擬,沒有獨立的浮點協處理器,但比長城0520筷了一個量級。」
他把一張3.5寸軟盤插進驅動器,敲了幾個命令。
屏幕上跳出一行字:「MathLibv0.3—課題組內部測試版」。
「你給我的那個預條件子代碼,我已經整合進函數庫了,測試跑了一晚上,精度和速度都比原來的版本提高了不少,」鄒世明把鍵盤推給陸沉,然後從包里掏出一摞軟盤放在桌上,「這是二十張空白盤,備用的,用完了跟我說。」
陸沉接過鍵盤,調出函數庫的代碼。
鄒世明在原始碼里專門建了一個子目錄,目錄名是LU,裡面是他寫的預條件子模塊。
代碼的注釋欄里有一行字:「基於陸沉的不完整分解譜界推導,鄒世明實現,1990年8月。」
他把那行字看了兩遍,然後把屏幕讓給王雪松。
王雪松已經在旁邊等了很久,手裡攥著一張畫滿了交換網絡拓撲結構的圖紙。
他坐到機器前面,把圖紙鋪在鍵盤旁邊,開始敲代碼。
他敲得很慢,每敲一行都要低頭看一眼圖紙,再抬頭看一眼屏幕,像一個剛學會走路的人扶著牆往前挪。
顧小北從閱覽室外面走進來,手裡端著一個搪瓷茶缸,茶缸里泡著茉莉花茶。
她把茶缸放在機器旁邊,看了一眼王雪松屏幕上那一行一行往外冒的代碼。
「你寫的是最大流算法?」
【記住本站域名𝘛𝘞看書網→𝘴𝘩𝘶.𝘵𝘸】
「對,用在交換網絡的瓶頸分析上,」王雪松沒抬頭,「圖的規模很大,手工算不出來,得上機。」
「圖多大?」
「第一版先跑一百個節點的。」
一百個節點。
對於1990年一台沒有硬體浮點加速的386來說,這已經是一道要算很久的題了。
王雪松敲完最後一行代碼,按下編譯鍵。
機器的硬碟燈開始狂閃,綠色的光標停了大概十幾秒,然後屏幕上跳出一行提示:「Compiled successfully。」
「成功了,」王雪松說。
他的聲音很平,但按回車鍵的手指有一點抖。
程序開始跑。
屏幕上的數據一行一行地滾,機箱裡的散熱風扇嗡嗡地響。
方磊和宋知行把椅子搬到機器後面,一左一右地坐著,盯著屏幕上的數字像盯著電視裡的球賽。
顧小北站在旁邊,手裡的茉莉花茶涼了都忘了喝。
陸沉靠窗站著,看著這群人圍著一台386的樣子,心裡有什麼東西被輕輕撞了一下。
前世的他也在實驗室里跑過無數次數據。
那時候的機器比這台386快了幾千倍,結果幾秒鐘就能出來。
但那時候跑數據是一件孤獨的事一個人,一台機器,一杯涼掉的咖啡。
不像現在。
現在是一整個閱覽室的人圍著一台綠光屏幕,等著一個一百個節點的圖論算法跑出結果。
程序跑了將近四十分鐘。
中間王雪松出去上了趟廁所,方磊替他盯著屏幕。
方磊盯屏幕的方式很特別他不是看著數據發呆,而是拿著一支筆在草稿紙上跟著程序輸出的中間結果手算。
手算的速度當然趕不上機器,但他就是要算,說這樣能感覺到算法的脈搏。
算到某一步的時候他忽然喊了一聲「這裡瓶頸值跳了」,把剛從廁所回來的王雪松嚇得差點撞門框上。
最終結果出來的時候,窗外天已經暗了。
屏幕上的最後一排數字顯示:當前瓶頸值對應的邊割集規模為23。
王雪松把這個數字抄在圖紙上,在旁邊標註了一行字:「386驗證,1990年8月。」
「這個結果,」他轉過來看著陸沉,「如果用銀河—I跑,規模可以擴大兩個數量級,圖的結構也需要調整—現在這個圖是隨機生成的,下一步應該用實際通信網的數據。」
陸沉點頭。
「銀河—1的機時申請已經在走流程了,計算所李研究員那邊說,十一月可能有空窗。」
「十一月,」王雪松重複了一遍這個時間,然後翻到課題本的下一頁,在進度記錄欄里寫下了下一步計劃。
那天晚上,閱覽室的燈亮到了很晚。
方宜民來催了三次,前兩次沒人理他,第三次他乾脆不催了,自己也搬了把椅子在旁邊看他們跑數據。
食堂李師傅晚上十點拎著一壺熱水和一袋饅頭過來,看見滿屋子的人圍著機器,屏幕上綠瑩瑩的光映在幾張年輕的臉上,搖了搖頭說了一句「一群小瘋子」,放下饅頭走了。
陸沉拿起一個饅頭,掰開,裡面夾了一筷子從食堂帶的榨菜。
他咬著饅頭看著屏幕上王雪松剛寫好的網絡拓撲可視化代碼一不是用十六種顏色畫線那種,是用ASCII字符在屏幕上畫圖,節點用星號表示,連線用減號和豎線拼接。
簡陋到不能再簡陋,但當你看到一百個星號和它們之間的連線在綠光屏幕上慢慢浮現出來的時候,你還是會覺得一這張網,真他媽好看。
第二天上午,顧小北遇到了一個坎。
她在做網絡最大流算法的收斂性證明,推到第三步的時候發現一個邊界條件怎麼都過不去。
她在黑板上寫了三黑板,每一遍推導都在同一個地方卡住,像一個走迷宮的人每次都
在同一個死胡同里掉頭。
她把第四遍推導寫到一半,粉筆停在黑板上,停了好一會兒。
「這個邊界條件,如果網絡的容量不是整數,是任意實數,收斂性保證不了,」她轉過身,額頭上有粉筆灰,「但實際通信網的容量就是整數,所以這個邊界條件在現實里不會觸發。」
「那就算它不觸發,證明也得寫清楚為什麼不觸發,」方磊說。
「對,」顧小北把粉筆放下,「但我現在寫不清楚。」
陸沉從座位上站起來,走到黑板前面。
他看了一會兒顧小北的推導過程每一步都很紮實,每一行都沒有邏輯漏洞。
卡住的地方確實是一個很深的坑:算法收斂性的標準證明依賴於整數容量的有限步下降性質,而實數容量沒有這個性質。
「你已經在證明了,」陸沉說。
「我沒證出來。」
「你把不能收斂的條件精確地刻畫出來了若且唯若容量取非整數值時,收斂性可能失效,這就是一個引理,」陸沉拿起粉筆,在顧小北的推導旁邊畫了一個框,把那個卡住的邊界條件單獨框出來。
「這個引理的價值不比你原來要證的收斂性低,它告訴用這個算法的人:在整數網絡中你是安全的;在實數網絡中,你需要額外加一個微量擾動。」
顧小北看著那個框看了好一會兒。
然後她拿起粉筆,在框下面寫了一行字:「引理:最大流算法在整數網絡中保證有限步收斂,在實數網絡中,通過施加任意小的容量擾動可恢復收斂性。」
寫完以後她把粉筆扔回粉筆槽里,拍了拍手上的灰。
「這個引理,命名叫顧小北引理行不行?」方磊在下面起鬨。
「滾————」顧小北撇嘴。
但她轉過身的時候嘴角是彎的。
中午吃飯的時候,食堂李師傅端出了一盆魚香肉絲。
方磊第一個衝到窗口,打了雙份,把飯盆裝得像一座小山。
他端著飯盆坐到陸沉旁邊,吃了好幾口以後忽然放下筷子。
「陸沉,我跟你說個事。」
陸沉等著。
「我爸昨天打電話到傳達室了,」方磊盯著飯盆里的魚香肉絲,「他說他們在電視上看到新聞了,中國隊拿了團體第一,我拿了銀牌,他說他把那天的《新聞聯播》錄下來了,錄了三遍,怕錄像帶消磁。」
他頓了頓。
「然後他說,兒子,你那個課題組還缺不缺人?爸是電工,可以幫你布網線。」
陸沉沒笑。
方磊也沒笑。
兩個人安靜地吃了一會兒飯。
「你怎麼說的?」陸沉問。
「我說不缺電工,缺數學家,」方磊夾起一筷子魚香肉絲,「但我可以教他,等他退休了,我教他圖論。」
下午,何巍的信到了。
信是從四川那個小縣城寄來的。
信封是縣中的牛皮紙信封,背面用膠水封著,上面貼了三張八分錢的郵票。
陸沉拆開,裡面只有一張紙,對摺著。
展開,字跡是何巍的,但比平時更潦草——不是寫得匆忙,是寫得激動。
「陸沉:我見到周堯了,他們學校在放暑假,他一個人坐在空蕩蕩的教室里做數學題,黑板上寫滿了一整面的推導,是從他那個圖論數論方法出發做的高次剩餘推廣,他卡住的那一步,我把群表示論的引理寫在紙上遞給他,他看了很久,然後他從課桌抽屜里拿出一本翻爛了的筆記本,翻到某一頁,把上面畫的一個圖指給我看。」
「那個圖和你便簽本上畫的橋幾乎一模一樣,他自己畫的,一個人在這間空教室里畫的,沒有人告訴他方向,沒有人給他批經費,沒有人讓他在課題本上簽字,他只是想繼續做數學。」
「他已經把高次剩餘的圖論構造往前推了兩步,比我來之前預想的更遠,我跟他花了一天一夜把群表示論的引理和他的圖構造嫁接在一起,通了,兩個方向之間的橋通了。」
「周堯托我轉告你一句話:「謝謝你沒把那張紙扔掉。
「另,他後天跟我一起回BJ,課題組見。」
陸沉把信折好放回信封里。
窗外的楊樹上,知了正在試音,斷斷續續地叫著。
他把手伸進口袋裡,摸到那本便簽本。
翻到畫滿橋的那一頁,在周堯的虛線節點旁邊,畫了一條實線。
線連上了。
九月的第二個星期一,銀河—I的機時批下來了。
李研究員親自騎著自行車來通知的。
他四十多歲,瘦高個,戴一副銀框眼鏡,騎的是一輛二八大槓,車鈴鐺鏽得按不響了o
他把車往閱覽室門口的槐樹上一靠,從公文包里掏出一份傳真件,遞給劉領隊。
「國防科工委特批,銀河—I,每周八小時,連續八周,」李研究員摘了眼鏡擦著鏡片上的灰,「八小時看著不多,但那是銀河—I,全中國運算速度最快的機器,全國幾百個課題組排隊等,有些排了一年多還沒輪到。」
他把眼鏡重新戴上。
「你們排了不到一個月。」
閱覽室里安靜了一瞬。
然後方磊從椅子上彈起來,屁股撞歪了桌上那杯涼透的茉莉花茶。
茶水灑在草稿紙上,把一張畫了三天的拓撲圖洇濕了一個角。
他顧不上擦,一把抓住李研究員的袖子。
「李老師,八小時是全給我們課題組,還是整個計算所分?」
「全給你們,專機專用。」
方磊鬆開手,愣在原地。
宋知行從座位上站起來,走到李研究員面前鞠了一躬,鞠得很深,直起身的時候眼眶有點紅。
顧小北把手裡的蘋果放下來,在便簽紙上寫了一個日期,貼在窗台上那排蘋果核的最前面。
陸沉接過傳真件。
文件抬頭上印著中國人民解放軍國防科學技術工業委員會,下面是一行黑體字—銀河—I巨型計算機機時分配通知單。
通知單的備註欄里有一行手寫的鉛筆字,字跡很輕,但每一筆都交代得清清楚楚:「此課題組系信息高速公路專項數學基礎研究承擔單位,機時保障優先。錢。」
第一周的銀河—1機時安排在周五凌晨兩點到上午十點。
不是課題組選的,是銀河—I的調度排期排出來的—巨型機二十四小時不停機,白天的黃金時段要給國防口的緊急計算任務讓路,民用課題只能見縫插針。
劉領隊拿到時間表的時候眉頭皺成了一個疙瘩。
「凌晨兩點,你們幾個孩子大半夜的跑去計算所,路上出了事怎麼辦?」
方宜民在旁邊小聲說了句「我送他們,」
劉領隊看了他一眼沒說話。
周四晚上,閱覽室里的氣氛和平時完全不一樣。
方磊把他的拓撲圖重新譽抄了一遍,用簽字筆一筆一畫地描,描錯了用刀片輕輕刮掉,刮出一個毛邊再用橡皮擦平。
宋知行把要上機跑的程序代碼寫在紙上—不是用鉛筆,是用鋼筆,每一個分號都點得端端正正。
王雪松把軟盤一張一張地檢查,每一張都插進驅動器里讀一遍確認沒有壞道,然後把程序備份了兩份,一份放自己書包里,一份放陸沉書包里。
「兩份不夠,再備一份,」顧小北說。
「已經兩份了。」
「再備一份,」顧小北堅持,「我姥姥說,重要的事情做三遍。」
王雪松把第三份備份拷進軟盤,標籤上寫了一個3,筆跡很重。
凌晨一點半,方宜民推著一輛從數學所借來的三輪車等在招待所門口。
車上放著六個人的書包和一台從閱覽室搬來的備用電源鄒世明聽說他們要通宵跑銀河—1,專門送過來的,說萬一計算所的穩壓器出問題,這台備用電源能頂半小時。
方磊和宋知行坐在三輪車斗里,背靠著備用電源,抬頭看著天上的星星。
九月的BJ夜空高而清澈,星星不多但很亮。
「你緊張不?」方磊問宋知行。
「有一點。」
「我也是,」方磊把手伸進書包里摸到課題本的封面,「但我不是怕程序跑不通,是怕萬一跑通了——我就不知道接下來該幹什麼了。」
宋知行沉默了一會兒。
「跑通了就接著跑下一個,你那個密碼學S盒的數學結構,跑通了第一步,還有第二步第三步。」
「也是,」方磊把手從書包里抽出來,仰面躺在備用電源上。
計算所在中關村東邊,一棟灰色的六層樓。
銀河—I占了整整一層,機房外面是兩道鐵門,第一道是普通的防盜門,第二道是帶密封條的恆溫恆濕門。
門口有專人值班,驗過李研究員簽發的機時調度單才放人進去。
值班員是個二十出頭的年輕戰士,穿著綠軍裝,驗完單子以後對著方宜民和六個半大孩子看了好一會兒。
「你們就是那個課題組?」
「對,」方宜民說。
年輕戰士沒再問,把第二道門推開。
一股涼氣從機房裡湧出來,帶著空調製冷劑和電路板微微發熱混合的氣味。
銀河—I就立在機房正中央,不是一台機器,是一排機器。
十幾個灰白色的機櫃排成兩列,每一個都比人還高,上面密密麻麻的指示燈在閃爍,紅的綠的黃的,像一座微型城市的夜景。
機櫃之間有電纜連接,電纜用不同顏色的扎帶束著,貼著標籤,走線橫平豎直。
機器運行時發出的聲音不是風扇的轟鳴,是一種更深沉的、低頻的嗡嗡聲,像一頭發動機在怠速。
六個人在機房門口站了將近一分鐘,沒有人說話。
第二天下午,閱覽室被正式改成了課題組的工作室。
方宜民帶著方磊和宋知行把原來靠牆的書架挪到走廊里,騰出的位置擺了三張從數學所倉庫里搬來的舊書桌。
書桌是六十年代的,桌面上鋪著綠色的氈子,邊角被磨得發亮,氈子上有墨水漬和茶杯底燙出來的圓印子。
數學所的管理員說這些桌子是錢老那個年代用的,方磊聽了以後擦桌子的動作都輕了三分。
機器也來了。
鄒世明親自開著一輛麵包車送來的。
一台386微機,米白色的機箱,十四寸的CRT顯示器,屏幕是球面的,關機的時候映出窗戶和人的倒影。
鄒世明把機器搬進閱覽室的時候,全課題組的人都圍上來了,像圍觀一個新生的嬰兒。
「這是中關村電子一條街上現在能攢出來的最好的機器,」鄒世明把電源線插上,按了一下開機鍵。
機箱裡發出一聲輕微的蜂鳴,屏幕亮起來,一片幽幽的綠光,D0S提示符在左上角一
閃一閃。
「80386的晶片,4兆內存,40兆硬碟,浮點運算靠軟體模擬,沒有獨立的浮點協處理器,但比長城0520筷了一個量級。」
他把一張3.5寸軟盤插進驅動器,敲了幾個命令。
屏幕上跳出一行字:「MathLibv0.3—課題組內部測試版」。
「你給我的那個預條件子代碼,我已經整合進函數庫了,測試跑了一晚上,精度和速度都比原來的版本提高了不少,」鄒世明把鍵盤推給陸沉,然後從包里掏出一摞軟盤放在桌上,「這是二十張空白盤,備用的,用完了跟我說。」
陸沉接過鍵盤,調出函數庫的代碼。
鄒世明在原始碼里專門建了一個子目錄,目錄名是LU,裡面是他寫的預條件子模塊。
代碼的注釋欄里有一行字:「基於陸沉的不完整分解譜界推導,鄒世明實現,1990年8月。」
他把那行字看了兩遍,然後把屏幕讓給王雪松。
王雪松已經在旁邊等了很久,手裡攥著一張畫滿了交換網絡拓撲結構的圖紙。
他坐到機器前面,把圖紙鋪在鍵盤旁邊,開始敲代碼。
他敲得很慢,每敲一行都要低頭看一眼圖紙,再抬頭看一眼屏幕,像一個剛學會走路的人扶著牆往前挪。
顧小北從閱覽室外面走進來,手裡端著一個搪瓷茶缸,茶缸里泡著茉莉花茶。
她把茶缸放在機器旁邊,看了一眼王雪松屏幕上那一行一行往外冒的代碼。
「你寫的是最大流算法?」
【記住本站域名𝘛𝘞看書網→𝘴𝘩𝘶.𝘵𝘸】
「對,用在交換網絡的瓶頸分析上,」王雪松沒抬頭,「圖的規模很大,手工算不出來,得上機。」
「圖多大?」
「第一版先跑一百個節點的。」
一百個節點。
對於1990年一台沒有硬體浮點加速的386來說,這已經是一道要算很久的題了。
王雪松敲完最後一行代碼,按下編譯鍵。
機器的硬碟燈開始狂閃,綠色的光標停了大概十幾秒,然後屏幕上跳出一行提示:「Compiled successfully。」
「成功了,」王雪松說。
他的聲音很平,但按回車鍵的手指有一點抖。
程序開始跑。
屏幕上的數據一行一行地滾,機箱裡的散熱風扇嗡嗡地響。
方磊和宋知行把椅子搬到機器後面,一左一右地坐著,盯著屏幕上的數字像盯著電視裡的球賽。
顧小北站在旁邊,手裡的茉莉花茶涼了都忘了喝。
陸沉靠窗站著,看著這群人圍著一台386的樣子,心裡有什麼東西被輕輕撞了一下。
前世的他也在實驗室里跑過無數次數據。
那時候的機器比這台386快了幾千倍,結果幾秒鐘就能出來。
但那時候跑數據是一件孤獨的事一個人,一台機器,一杯涼掉的咖啡。
不像現在。
現在是一整個閱覽室的人圍著一台綠光屏幕,等著一個一百個節點的圖論算法跑出結果。
程序跑了將近四十分鐘。
中間王雪松出去上了趟廁所,方磊替他盯著屏幕。
方磊盯屏幕的方式很特別他不是看著數據發呆,而是拿著一支筆在草稿紙上跟著程序輸出的中間結果手算。
手算的速度當然趕不上機器,但他就是要算,說這樣能感覺到算法的脈搏。
算到某一步的時候他忽然喊了一聲「這裡瓶頸值跳了」,把剛從廁所回來的王雪松嚇得差點撞門框上。
最終結果出來的時候,窗外天已經暗了。
屏幕上的最後一排數字顯示:當前瓶頸值對應的邊割集規模為23。
王雪松把這個數字抄在圖紙上,在旁邊標註了一行字:「386驗證,1990年8月。」
「這個結果,」他轉過來看著陸沉,「如果用銀河—I跑,規模可以擴大兩個數量級,圖的結構也需要調整—現在這個圖是隨機生成的,下一步應該用實際通信網的數據。」
陸沉點頭。
「銀河—1的機時申請已經在走流程了,計算所李研究員那邊說,十一月可能有空窗。」
「十一月,」王雪松重複了一遍這個時間,然後翻到課題本的下一頁,在進度記錄欄里寫下了下一步計劃。
那天晚上,閱覽室的燈亮到了很晚。
方宜民來催了三次,前兩次沒人理他,第三次他乾脆不催了,自己也搬了把椅子在旁邊看他們跑數據。
食堂李師傅晚上十點拎著一壺熱水和一袋饅頭過來,看見滿屋子的人圍著機器,屏幕上綠瑩瑩的光映在幾張年輕的臉上,搖了搖頭說了一句「一群小瘋子」,放下饅頭走了。
陸沉拿起一個饅頭,掰開,裡面夾了一筷子從食堂帶的榨菜。
他咬著饅頭看著屏幕上王雪松剛寫好的網絡拓撲可視化代碼一不是用十六種顏色畫線那種,是用ASCII字符在屏幕上畫圖,節點用星號表示,連線用減號和豎線拼接。
簡陋到不能再簡陋,但當你看到一百個星號和它們之間的連線在綠光屏幕上慢慢浮現出來的時候,你還是會覺得一這張網,真他媽好看。
第二天上午,顧小北遇到了一個坎。
她在做網絡最大流算法的收斂性證明,推到第三步的時候發現一個邊界條件怎麼都過不去。
她在黑板上寫了三黑板,每一遍推導都在同一個地方卡住,像一個走迷宮的人每次都
在同一個死胡同里掉頭。
她把第四遍推導寫到一半,粉筆停在黑板上,停了好一會兒。
「這個邊界條件,如果網絡的容量不是整數,是任意實數,收斂性保證不了,」她轉過身,額頭上有粉筆灰,「但實際通信網的容量就是整數,所以這個邊界條件在現實里不會觸發。」
「那就算它不觸發,證明也得寫清楚為什麼不觸發,」方磊說。
「對,」顧小北把粉筆放下,「但我現在寫不清楚。」
陸沉從座位上站起來,走到黑板前面。
他看了一會兒顧小北的推導過程每一步都很紮實,每一行都沒有邏輯漏洞。
卡住的地方確實是一個很深的坑:算法收斂性的標準證明依賴於整數容量的有限步下降性質,而實數容量沒有這個性質。
「你已經在證明了,」陸沉說。
「我沒證出來。」
「你把不能收斂的條件精確地刻畫出來了若且唯若容量取非整數值時,收斂性可能失效,這就是一個引理,」陸沉拿起粉筆,在顧小北的推導旁邊畫了一個框,把那個卡住的邊界條件單獨框出來。
「這個引理的價值不比你原來要證的收斂性低,它告訴用這個算法的人:在整數網絡中你是安全的;在實數網絡中,你需要額外加一個微量擾動。」
顧小北看著那個框看了好一會兒。
然後她拿起粉筆,在框下面寫了一行字:「引理:最大流算法在整數網絡中保證有限步收斂,在實數網絡中,通過施加任意小的容量擾動可恢復收斂性。」
寫完以後她把粉筆扔回粉筆槽里,拍了拍手上的灰。
「這個引理,命名叫顧小北引理行不行?」方磊在下面起鬨。
「滾————」顧小北撇嘴。
但她轉過身的時候嘴角是彎的。
中午吃飯的時候,食堂李師傅端出了一盆魚香肉絲。
方磊第一個衝到窗口,打了雙份,把飯盆裝得像一座小山。
他端著飯盆坐到陸沉旁邊,吃了好幾口以後忽然放下筷子。
「陸沉,我跟你說個事。」
陸沉等著。
「我爸昨天打電話到傳達室了,」方磊盯著飯盆里的魚香肉絲,「他說他們在電視上看到新聞了,中國隊拿了團體第一,我拿了銀牌,他說他把那天的《新聞聯播》錄下來了,錄了三遍,怕錄像帶消磁。」
他頓了頓。
「然後他說,兒子,你那個課題組還缺不缺人?爸是電工,可以幫你布網線。」
陸沉沒笑。
方磊也沒笑。
兩個人安靜地吃了一會兒飯。
「你怎麼說的?」陸沉問。
「我說不缺電工,缺數學家,」方磊夾起一筷子魚香肉絲,「但我可以教他,等他退休了,我教他圖論。」
下午,何巍的信到了。
信是從四川那個小縣城寄來的。
信封是縣中的牛皮紙信封,背面用膠水封著,上面貼了三張八分錢的郵票。
陸沉拆開,裡面只有一張紙,對摺著。
展開,字跡是何巍的,但比平時更潦草——不是寫得匆忙,是寫得激動。
「陸沉:我見到周堯了,他們學校在放暑假,他一個人坐在空蕩蕩的教室里做數學題,黑板上寫滿了一整面的推導,是從他那個圖論數論方法出發做的高次剩餘推廣,他卡住的那一步,我把群表示論的引理寫在紙上遞給他,他看了很久,然後他從課桌抽屜里拿出一本翻爛了的筆記本,翻到某一頁,把上面畫的一個圖指給我看。」
「那個圖和你便簽本上畫的橋幾乎一模一樣,他自己畫的,一個人在這間空教室里畫的,沒有人告訴他方向,沒有人給他批經費,沒有人讓他在課題本上簽字,他只是想繼續做數學。」
「他已經把高次剩餘的圖論構造往前推了兩步,比我來之前預想的更遠,我跟他花了一天一夜把群表示論的引理和他的圖構造嫁接在一起,通了,兩個方向之間的橋通了。」
「周堯托我轉告你一句話:「謝謝你沒把那張紙扔掉。
「另,他後天跟我一起回BJ,課題組見。」
陸沉把信折好放回信封里。
窗外的楊樹上,知了正在試音,斷斷續續地叫著。
他把手伸進口袋裡,摸到那本便簽本。
翻到畫滿橋的那一頁,在周堯的虛線節點旁邊,畫了一條實線。
線連上了。
九月的第二個星期一,銀河—I的機時批下來了。
李研究員親自騎著自行車來通知的。
他四十多歲,瘦高個,戴一副銀框眼鏡,騎的是一輛二八大槓,車鈴鐺鏽得按不響了o
他把車往閱覽室門口的槐樹上一靠,從公文包里掏出一份傳真件,遞給劉領隊。
「國防科工委特批,銀河—I,每周八小時,連續八周,」李研究員摘了眼鏡擦著鏡片上的灰,「八小時看著不多,但那是銀河—I,全中國運算速度最快的機器,全國幾百個課題組排隊等,有些排了一年多還沒輪到。」
他把眼鏡重新戴上。
「你們排了不到一個月。」
閱覽室里安靜了一瞬。
然後方磊從椅子上彈起來,屁股撞歪了桌上那杯涼透的茉莉花茶。
茶水灑在草稿紙上,把一張畫了三天的拓撲圖洇濕了一個角。
他顧不上擦,一把抓住李研究員的袖子。
「李老師,八小時是全給我們課題組,還是整個計算所分?」
「全給你們,專機專用。」
方磊鬆開手,愣在原地。
宋知行從座位上站起來,走到李研究員面前鞠了一躬,鞠得很深,直起身的時候眼眶有點紅。
顧小北把手裡的蘋果放下來,在便簽紙上寫了一個日期,貼在窗台上那排蘋果核的最前面。
陸沉接過傳真件。
文件抬頭上印著中國人民解放軍國防科學技術工業委員會,下面是一行黑體字—銀河—I巨型計算機機時分配通知單。
通知單的備註欄里有一行手寫的鉛筆字,字跡很輕,但每一筆都交代得清清楚楚:「此課題組系信息高速公路專項數學基礎研究承擔單位,機時保障優先。錢。」
第一周的銀河—1機時安排在周五凌晨兩點到上午十點。
不是課題組選的,是銀河—I的調度排期排出來的—巨型機二十四小時不停機,白天的黃金時段要給國防口的緊急計算任務讓路,民用課題只能見縫插針。
劉領隊拿到時間表的時候眉頭皺成了一個疙瘩。
「凌晨兩點,你們幾個孩子大半夜的跑去計算所,路上出了事怎麼辦?」
方宜民在旁邊小聲說了句「我送他們,」
劉領隊看了他一眼沒說話。
周四晚上,閱覽室里的氣氛和平時完全不一樣。
方磊把他的拓撲圖重新譽抄了一遍,用簽字筆一筆一畫地描,描錯了用刀片輕輕刮掉,刮出一個毛邊再用橡皮擦平。
宋知行把要上機跑的程序代碼寫在紙上—不是用鉛筆,是用鋼筆,每一個分號都點得端端正正。
王雪松把軟盤一張一張地檢查,每一張都插進驅動器里讀一遍確認沒有壞道,然後把程序備份了兩份,一份放自己書包里,一份放陸沉書包里。
「兩份不夠,再備一份,」顧小北說。
「已經兩份了。」
「再備一份,」顧小北堅持,「我姥姥說,重要的事情做三遍。」
王雪松把第三份備份拷進軟盤,標籤上寫了一個3,筆跡很重。
凌晨一點半,方宜民推著一輛從數學所借來的三輪車等在招待所門口。
車上放著六個人的書包和一台從閱覽室搬來的備用電源鄒世明聽說他們要通宵跑銀河—1,專門送過來的,說萬一計算所的穩壓器出問題,這台備用電源能頂半小時。
方磊和宋知行坐在三輪車斗里,背靠著備用電源,抬頭看著天上的星星。
九月的BJ夜空高而清澈,星星不多但很亮。
「你緊張不?」方磊問宋知行。
「有一點。」
「我也是,」方磊把手伸進書包里摸到課題本的封面,「但我不是怕程序跑不通,是怕萬一跑通了——我就不知道接下來該幹什麼了。」
宋知行沉默了一會兒。
「跑通了就接著跑下一個,你那個密碼學S盒的數學結構,跑通了第一步,還有第二步第三步。」
「也是,」方磊把手從書包里抽出來,仰面躺在備用電源上。
計算所在中關村東邊,一棟灰色的六層樓。
銀河—I占了整整一層,機房外面是兩道鐵門,第一道是普通的防盜門,第二道是帶密封條的恆溫恆濕門。
門口有專人值班,驗過李研究員簽發的機時調度單才放人進去。
值班員是個二十出頭的年輕戰士,穿著綠軍裝,驗完單子以後對著方宜民和六個半大孩子看了好一會兒。
「你們就是那個課題組?」
「對,」方宜民說。
年輕戰士沒再問,把第二道門推開。
一股涼氣從機房裡湧出來,帶著空調製冷劑和電路板微微發熱混合的氣味。
銀河—I就立在機房正中央,不是一台機器,是一排機器。
十幾個灰白色的機櫃排成兩列,每一個都比人還高,上面密密麻麻的指示燈在閃爍,紅的綠的黃的,像一座微型城市的夜景。
機櫃之間有電纜連接,電纜用不同顏色的扎帶束著,貼著標籤,走線橫平豎直。
機器運行時發出的聲音不是風扇的轟鳴,是一種更深沉的、低頻的嗡嗡聲,像一頭發動機在怠速。
六個人在機房門口站了將近一分鐘,沒有人說話。