应用工作。
皋月多留意了一些。
奥尔洛夫坐到一台旧终端前,敲了几行命令。
屏幕上出现绿色字符,程序开始运行。
起初,艾米只是礼貌地看着。
十秒后,她的眼神定住了。
二十秒后,她往前凑了一点。
三十秒后,她从工具袋里摸出一本纸质笔记本,又摸出铅笔,开始飞快地写。
皋月站在她旁边,看不懂那些输出参数。
但她能看懂艾米。
艾米平时看到无聊设备时,嘴角会稍微往下压,手指会去摸工具袋里的螺丝刀。看到有意思的东西时,她会忘记自己在什么地方。
现在她忘了眨眼。
终端屏幕上,任务被切成若干片段,在不同节点间分配、回收、再分配。
机器很旧。
可响应速度不对。
艾米低声嘀咕。
“这不可能……”
她在笔记本上写下一个词,又划掉。
“也不对……”
奥尔洛夫的演示结束,正准备起身。
“EXCUSe me.”
艾米忽然用英语开口叫住了他。
“YOUr bOttleneCk iS nOt COmpUtatiOn. Where iS the latenCy? TranSpOrt layer, Or SChedUling qUeUe?(计算并不是你的瓶颈。真正的延迟在哪里?是在传输层,还是卡在调度队列里?)”
机房里安静了一下。
奥尔洛夫愣住了。
他看向别洛夫副主任。
别洛夫正在同修一说话,科兹洛夫也在翻译,没有注意这边。
奥尔洛夫迟疑了一瞬,随即用英语回答。
“Neither.(都不是。)PhySiCal link iS SlOW, yeS, bUt the real delay iS SynChrOniZatiOn barrier.(物理链路确实很慢,没错,但真正的延迟来自同步屏障。)We avOid glObal barrier When taSk graph allOWS partial Ordering.(当任务图允许部分排序时,我们会避免全局屏障。)”
艾米的眼睛亮了。
“Then yOU are nOt dOing Simple batCh SChedUling.(那你们做的就不是简单的批量调度。)YOU have dependenCy prediCtiOn?(你们有依赖预测?)”
“NOt prediCtiOn.(不是预测。)COnServative eStimatiOn.(是保守估计。)If dependenCy graph iS SparSe, We pre-allOCate WindOW.(如果依赖图是稀疏的,我们会预先分配窗口。)”
“WindOW SiZe?(窗口大小呢?)”
“DynamiC.(动态调整。)BaSed On failUre rate and meSSage aCknOWledgement.(根据失败率和消息确认来决定。)”
“YOUr aCknOWledgement iS tOO eXpenSive.(你们的确认机制开销太高了。)”
“We COmpreSS it.(我们会压缩它。)”
“HOW?(怎么压缩?)”
奥尔洛夫停了一下。
这一次,他没有立刻回答。
他反问:
“If yOUr nOdeS fail Silently, dO yOU trUSt timeOUt, Or redUndant WitneSS?(如果你的节点静默失效,你会相信超时机制,还是冗余见证?)”
艾米的铅笔停在纸上。
她抬头看他。
两个人之间像忽然多了一条别人看不见的窄桥。
“DependS On COSt Of falSe pOSitive.(取决于误报的成本。)”
奥尔洛夫笑了一下。
那是他进门以来第一次露出近似真实的表情。
“GOOd anSWer.(回答得很好。)”
艾米也笑了。
“当然啦。”
她刚想继续问,别洛夫副主任已经转过身,向这边走过来。
“时间差不多了。”
“接下来还有资料室参观。”
奥尔洛夫闭上嘴。
艾米也把笔记本往怀里一收,乖得像刚才什么都没发生。
皋月