第358章 儘量


  第357章 儘量

  請訪問ʂƮօ55.ƈօʍ獲取最快的章節更新

  特倫頓的風從教堂門口灌進來的時候,陳拙正彎著腰,把一箱臨期罐頭搬出來。

  箱子不算輕。

  紙板外殼被雪水打濕了一角,邊緣有些發軟,手指稍微一用力,就能摸到裡面鐵罐冰冷的圓弧。

  亞伯拉罕站在後面,一邊用胳膊擋開幾個試圖提前往前擠的流浪漢,一邊用那根舊棒球棍敲了敲地面。

  「排隊。」

  神父的聲音不大,但在這條泥濘街道上足夠有用。

  「今天沒人餓死,但誰搶,誰最後拿。」

  人群里傳來幾聲不滿的咕噥。

  一個裹著髒毯子的男人罵了兩句,看到亞伯拉罕手裡的棒球棍,又把嘴閉上了。

  阿米爾站在教堂側門旁,沉默地接過陳拙搬來的箱子,臉上沒有多餘表情,只在箱子堆歪的時候伸手扶正。

  伊利亞則完全是另一種狀態。

  他站在泥水邊緣,穿著那雙已經被特倫頓毀掉的佛羅倫斯手工皮鞋,雙手抱著一箱切片麵包,嘴裡從俄語罵到英語,又從英語罵回俄語。

  「我發誓,如果上帝真的愛世人,他至少應該先讓這個街區有一條像樣的排水溝!」

  亞伯拉罕頭也不回。

  「上帝可能也沒想到,會有人穿著這雙鞋來特倫頓搬麵包。」

  伊利亞冷笑了一聲。

  「我也沒想到。」

  他把箱子重重放在門邊,又低頭看了一眼自己的鞋,表情像是在參加一場小型葬禮。

  陳拙從車斗里搬下最後一箱罐頭,剛準備轉身,口袋裡的手機忽然震了一下。

  起初他沒聽見。

  特倫頓的街道太吵。

  有人在吵架,有人在咳嗽,遠處還有警笛聲被風吹得忽近忽遠,伊利亞正對著一塊濺到大衣下擺上的泥點發表長篇控訴。

  手機又震了一次。

  陳拙把箱子交給阿米爾,空出一隻手,從大衣內袋裡摸出諾基亞。

  屏幕亮著,來電顯示是一串跨洋轉接後的號碼。

  下面跳著兩個字。

  楚戈。

  陳拙看著那個名字,停頓了半秒。

  這個點打國際長途,不是電腦炸了,就是人快炸了。

  按楚戈的性格,前者的可能性還大一點。

  在他的記憶里,這個名字通常和凌晨一點的宿舍燈光,亂糟糟的網線,半瓶可樂,以及鍵盤敲擊聲聯繫在一起。

  楚戈不是一個喜歡打電話求救的人。

  哪怕當年在學校,他寫程序寫到滿臉發青,也更願意先自己把問題拆成一地零件,再把其中最硬的那塊丟到陳拙桌上。

  陳拙按下接聽鍵。

  電話接通後,對面沒有立刻說話。

  聽筒里先傳來一陣很輕的電流聲,然後是一個空曠而壓抑的呼吸聲。

  隔了幾秒,楚戈的聲音才從地球另一端傳過來。

  「拙哥。」

  聲音很低。

  有點啞,還帶著一種很久沒有睡覺後的乾澀。

  陳拙站在教堂側門旁,背後是灰白色的天空和泥濘的街道,前方是正在排隊領取食物的人群。

  他沒有問「怎麼了」。

  楚戈能在這個點打來,肯定已經不是一句「怎麼了」能解決的事。

  「你說。」

  陳拙換了一隻手拿手機,另一隻手從旁邊的箱子裡取出兩罐肉醬,遞給一個排到面前的老婦人。

  老婦人接過罐頭,嘟囔著道謝。

  電話那頭,楚戈沉默了兩秒。

  「我先說清楚。」

  楚戈的聲音壓得很低,像是站在一個封閉的樓梯間裡。

  「我不是讓你幫我寫代碼,也不是讓你管我們公司的事。」

  陳拙抬起眼,看了一眼正拿棒球棍維持隊伍秩序的亞伯拉罕。

  「嗯。」

  「你也不懂計算機。」楚戈又說。

  這句話說得很直,像當年宿舍里幾個人互相拆台時的語氣。

  陳拙點了點頭。

  「對,我對計算機的理解,主要停留在別把水潑鍵盤上。」

  電話那頭沉默了一下。

  楚戈像是想笑,但沒笑出來。

  那口氣憋在嗓子裡,最後只變成了一聲很輕的呼吸。

  「我就是想問你一個數學上的問題。」

  陳拙從箱子裡又拿出一袋臨期麵包,放到阿米爾遞過來的桌板上。

  「你問。」

  電話那頭,楚戈的聲音頓了頓,開始儘量平靜地描述。

  他說得不快。

  從三十萬並發開始說。

  說他們復現了波士頓那幾篇預印本里公開出來的底層邏輯,寫了兩個月代碼,買了能買到的最好商用伺服器,三十萬並發時,系統跑得像一塊涼水裡的石頭,紋絲不動。

  然後是五十萬。

  一開始能撐,後面響應時間越來越長,內存堆積,主進程被系統殺死。

  八十萬。

  死機。

  一百萬。

  瞬間CPU拉滿,內存見頂,伺服器像被人把腦子裡所有神經同時點燃,直接宕掉。

  後來他們試圖在工程外圍掛強制回收腳本。

  楚戈說到這裡的時候,聲音里終於出現了一點壓不住的疲憊。

  「然後燒了一台伺服器的電源。」

  陳拙安靜地聽著。

  他沒有插話。

  特倫頓這邊的隊伍向前移動,陳拙跟著往旁邊挪了一步,把手機夾在肩膀和耳朵之間,雙手搬起一箱新的麵包。

  伊利亞看了他一眼,皺眉。

  「你在跟誰講電話?你現在像一個在戰場上接聽銀行推銷的人。」

  陳拙偏過頭,用肩膀壓著手機,騰出一隻手扶了一下快要滑下去的紙箱。

  「等一下。」

  他用中文對電話那頭說了一句,又轉頭看向伊利亞。

  「我朋友的機器快死了,情況比你的鞋嚴重。」

  伊利亞低頭看了一眼自己的皮鞋,臉色明顯更差了。

  「這很難說。」

  陳拙沒再理他。

  阿米爾從他手裡接過麵包箱,目光落在陳拙耳邊的手機上,又很快移開。

  楚戈那邊似乎也聽到了這一句,但沒有追問。

  他繼續說。

  「代碼我們查了三遍。」

  「沒有內存泄漏,沒有指針越界,也不是線程池邏輯寫錯。」

  「工程上的問題能試的都試了,但一到極值點,那個矩陣就太大了,機器吃不下。」

  他的聲音低了一些。

  「拙哥,我現在就想問你一句。」

  樓梯間裡似乎有風聲。

  「你那個代數底座,是不是本來就不該這麼用?」

  陳拙終於停下了手裡的動作。

  他站在教堂側門旁,轉過身,看向遠處那條被雪水和泥巴混成灰黑色的街道。

  陳拙沉默了幾秒。

  「你們直接用了完整結構?」

  楚戈那邊安靜了一下。

  「嗯。

  「」

  「完整矩陣?」

  「嗯。」

  「沒有在生成前拆域?」

  楚戈愣了一下。

  「我們是在調度層之後做的切分。」

  「那就是生成完再切。」

  電話那頭沒有聲音。

  陳拙伸手從箱子裡取出一罐肉醬,放到桌板上,又順手把旁邊那袋快滑下去的麵包扶正。

  「那不死才奇怪。」

  這句話說得很輕。

  沒有責備,也沒有嘲笑。

  就像在說一件非常普通的事實。

  電話那頭,楚戈呼吸停了一瞬。

  「什麼意思?」

  陳拙看了一眼身邊正在排隊的流浪漢,轉身往教堂裡面走了幾步,避開最吵的人群。

  前廳里稍微安靜一些。

  亞伯拉罕看了他一眼,沒有跟上,只是繼續站在門口守著隊伍。

  陳拙靠在一張破木桌旁,低頭看著桌面上散落的麵包屑。

  「那篇東西不是給你們這種機器直接跑的。」

  他說。

  「它是一個數學閉環。」

  「我寫它的時候,討論的是高維並發對象在代數空間裡的完整映射和一次性降維,它默認的是,在極值點出現時,承載它的系統有能力把完整對象先托住,再壓下去。」

  楚戈沒有說話。

  陳拙繼續道:「你們現在的問題不是代碼錯了,也不是伺服器壞了。」

  「是你們讓那個完整對象出現了。

  17

  電話那邊,楚戈的聲音變得更低。

  「完整對象不能出現?」

  「在你們的機器上,不能。」陳拙說。

  「完整矩陣一旦生成,就已經超過你們硬體能承受的範圍了。後面再寫回收腳本,就像盤子已經扣在地上了,你再研究怎麼端穩,來不及。」

  「剪得動嗎?」

  楚戈沒有回答。

  陳拙聽見電話那頭有很輕的呼吸聲。

  他知道楚戈聽懂了。

  所以他沒有繼續解釋「為什麼剪不動」。

  楚戈不是數學家,但他是一個足夠優秀的工程師。

  陳拙只需要把那條線指出來,楚戈自己就能看到線後面的牆。

  過了一會兒,楚戈才開口。

  「可是原論文裡的結構就是完整閉合的。」

  「對。」

  「如果不完整,數學上不就塌了嗎?」

  「看你在哪個層面上要求完整。」

  陳拙說。

  他低頭看著桌面上的麵包屑,伸出手指,在木桌上隨手劃了一下。

  「你還記得以前宿舍里,大勇問過一個材料受力的問題嗎?」

  「哪次?」

  「他用鋼管和鋁棒抵消熱膨脹那次。」

  楚戈沉默了一下。

  「記得。」

  「那不是完美材料。」

  陳拙說。

  「它只是讓兩個不完美的東西在某個局部區間裡互相抵消,整體上當然不優雅,也不純粹,但在那個溫度範圍內,它穩定。」

  「你們現在也一樣。」

  陳拙停頓了一下,聽見外面伊利亞又在抱怨有人踩了他的鞋。

  「你們不需要完整的全局最優。」

  「你們只需要局部不炸。」

  電話另一端,楚戈的呼吸聲變重了一點。

  「怎麼做?」

  「你別問我代碼。」

  陳拙說得很乾脆。

  「我看你們那東西,大概跟你看大勇的合金配比差不多。」

  電話那頭,楚戈終於低低笑了一聲。

  很短。

  但那股壓得快要發硬的東西,似乎因為這一句鬆了一點。

  陳拙繼續道:「但從數學上說,你們不該讓那個矩陣完整出現。」

  「別等所有並發請求匯成一個整體再降維。」

  「在它進入完整映射之前,先把輸入域拆開。」

  楚戈沒說話。

  陳拙抬起頭,看向禮拜堂的方向。

  門縫裡能看見那塊破舊黑板的一角。

  「比如一百萬。」

  陳拙說。

  「你們現在把它當成一個一百萬的整體去算,所以它會生成一個你們機器托不起的高維對象。」

  「但一百萬不是一百萬。」

  楚戈聽到這句話,忽然有一種很熟悉的感覺。

  當年在科大宿舍里,陳拙給王大勇解釋實變函數的時候,也曾用這種像拆積木一樣的語氣,把一個看起來龐大而沉重的東西拆成很多個簡單到令人發愣的部分。

  陳拙繼續道:「一百萬可以是二十個五萬,也可以是五十個兩萬,重點不是數字怎麼分,重點是每一塊內部必須能夠獨立閉合。」

  楚戈的手指下意識地按在樓梯間粗糙的牆皮上。

  「局部閉合?」

  「嗯,每一個局部塊內部,保留完整映射,塊和塊之間,不傳遞完整矩陣,只傳遞邊界量,邊界量必須低維,必須固定,必須允許誤差。」

  電話那頭安靜了足足五秒。

  然後楚戈的聲音忽然變得快了一點。

  「也就是說,不能做全局調度,要做分片局部調度。」

  「這是你的說法。」

  陳拙糾正道。

  「我的說法是,不要把整個空間一次性抬起來,你們抬不動。」

  「那塊和塊之間的數據衝突呢?」

  「用邊界常數處理。」

  「常數C?」

  「別用那個。」

  陳拙幾乎沒有停頓。

  「那個太重。」

  楚戈愣住了。

  「太重?」

  「嗯。

  「」

  陳拙看了一眼自己的鞋尖。

  「原始常數C是為了證明用的,不是給幾台商用伺服器硬背的。」

  他說這句話的時候,沒有任何不好意思。

  好像一篇震動數學、物理和計算機世界的東西,在他這裡本來就只是某種不適合普通機器的理論工具。

  「你們需要一個簡化的邊界常數。」

  「它不必維持全局代數優雅,只要能保證兩個局部塊拼接時不發生數據衝突。」

  楚戈的眼睛慢慢亮了起來。

  「犧牲一部分全局最優?」

  「對。」

  「換局部穩定?」

  「對。」

  「那用戶請求在塊之間遷移的時候怎麼辦?」

  「那是你的問題。」

  陳拙回答得非常自然。

  「你是寫代碼的。」

  楚戈張了張嘴,忽然又有點想笑。

  這個回答太陳拙了。

  他確實不懂計算機。

  他甚至懶得假裝懂。

  可他偏偏把最核心的那道數學門檻,直接踹開了一條縫。

  「拙哥。」

  楚戈低聲說。

  「我能不能理解成,你讓我把完整空間拆成很多個小盒子,每個盒子裡自己算自己的,盒子之間只交換一個很輕的邊界標記?」

  「差不多。」

  「這個邊界標記不追求數學上的完美閉合,只保證工程上不衝突?」

  「不是工程上。」

  陳拙又糾正了一次。

  「是局部代數關係不衝突。」

  楚戈立刻改口。

  「對,局部代數關係不衝突。」

  陳拙想了想,又補充了一句。

  「還有一點。」

  「你說。」

  「不要在映射之後回收。」

  「那在哪?」

  「映射之前。」

  楚戈整個人猛地站直,樓梯間裡的燈因為他的動作閃了一下。

  「映射之前?」

  「你們之前的外掛回收為什麼燒機器?」陳拙問。

  楚戈立刻答道:「因為強制回收切斷了同調映射,矩陣找不到對應節點,瘋狂重試。」

  「所以不要切已經映射過的東西。

  陳拙說。

  「在它成為矩陣的一部分之前,就決定它屬於哪個局部塊。」

  「如果它不屬於任何塊,就先讓它等。」

  「別讓它進去。」

  楚戈握著手機的手指慢慢收緊。

  這不是代碼,這也不是一個可以直接複製粘貼的解決方案。

  但這是一條路。

  一條他們自己可以走的路。

  輸入域前置分片。

  局部閉合。

  低維邊界量。

  簡化邊界常數。

  映射前限流,而不是映射後回收。

  這幾句話在楚戈腦子裡迅速拼成了一張新的架構圖。

  不是原論文裡那個巨大,完美,漂亮到不講道理的數學聖殿。

  而是一排低矮,結實,能扛風雨的倉庫。

  不好看。

  但能用。

  電話那頭,特倫頓的聲音忽然又變得嘈雜起來。

  有人大聲爭執,亞伯拉罕低沉的警告聲從遠處傳來,伊利亞用他那極具穿透力的俄式英語罵了一句什麼。

  陳拙側過頭,看見救濟隊伍前面有兩個男人因為多拿一袋麵包推搡起來。

  亞伯拉罕的棒球棍已經抬了起來。

  阿米爾默不作聲地走過去,站在兩人中間。

  陳拙收回目光,對電話那頭說:「我這邊快從分麵包變成分人了。

  楚戈怔了一下。

  他這才重新意識到,自己這通電話並不是打到了普林斯頓某間安靜的辦公室里。

  對面很吵。

  有風聲,有人的爭執聲,有箱子拖動的聲音,還有一個陌生男人用帶彈舌的口音不耐煩地罵街。

  「你在哪?」楚戈下意識問。

  「特倫頓。」

  「幹嘛?」

  「分麵包。」

  楚戈一時間沒反應過來。

  「啊?」

  陳拙看著門外泥濘街道上排隊的人群,語氣很平常。

  「幫一個神父分臨期食品。」

  電話那頭沉默了兩秒。

  楚戈忽然不知道該說什麼。

  深市南山科技園的樓梯間裡,白熾燈忽明忽暗。

  門後是十幾台伺服器,是合同,是上線時間,是百萬並發,是一家公司生死存亡。

  而電話另一端,陳拙站在新澤西某個貧民區破舊教堂的門口,手裡可能還沾著麵包屑正在給流浪漢分食物。

  兩個世界隔著半個地球。

  卻被一通國際長途勉強連在一起。

  楚戈靠著牆,忽然笑了一下。

  「你還真是......在哪都挺忙。」

  陳拙沒有接這句。

  他只是說:「楚戈。」

  「嗯。」

  「別去碰完整模型。」

  陳拙的聲音在嘈雜背景里依然穩定。

  「你們用不起,不丟人。」

  楚戈喉嚨動了一下。

  這句話比任何安慰都有用。

  不是你們差。

  是這東西本來就不是這麼用的。

  「我知道了。」

  楚戈低聲說。

  陳拙繼續道:「你們現在要做的,是寫一個你們自己的版本。」

  「不是復現我那篇東西。」

  「是借它的骨架,重新搭一個能在你們機器上站住的東西。」

  楚戈閉上眼睛,深吸了一口氣。

  「明白。」

  「別問我代碼。

  「」

  「不會問。」

  「別問我商業。

  「不問。」

  「你們自己決定能犧牲多少延遲,能接受多少等待,能把輸入域拆成多碎。」

  「好。」

  陳拙看了一眼教堂門口,亞伯拉罕已經把那兩個推搡的男人分開了。

  「我掛了。」

  楚戈握著手機,忽然開口。

  「拙哥。」

  「嗯?

  「謝了。」

  電話那頭安靜了一下。

  然後陳拙的聲音傳來。

  「別燒第二台伺服器了。」

  楚戈愣了半秒,隨即低低笑出了聲。

  「儘量。

  」」

  >


章節目錄