INItIALIZING AbLE……
dEtEG NodES……
屏幕上出现了一个表格,16行,每一行对应一台KJ-0A。第一列是节点编号,第二列是状态,第三列是Ip地址(他们用简单的数字编号代替Ip)。
NodE 0 StAtUS:oNLINE AddR:0
NodE 1 StAtUS:oNLINE AddR:1
……
NodEStAtUS:oNLINE AddR:15
16台机器的状态全是“oNLINE”。
陈教授点了点头,又敲了一个命令:
StARt hEARtbEAt
屏幕上开始每隔十秒跳出一行:
hEARtbEAt:ALL NodES RESpoNdEd
hEARtbEAt:ALL NodES RESpoNdEd
hEARtbEAt:ALL NodES RESpoNdEd
调度器的主控节点开始向其他十五台机器发送心跳包,每一台都正常响应。
“调度器跑起来了。”陈教授的声音很平静,但吕辰注意到他扶眼镜框的手指微微顿了一下。
“接下来测试任务分发。”陈教授从帆布包里拿出一张二维卡,插进一号机的读卡机,“这是一个简单的测试任务——计算斐波那契数列的前二十项。任务描述写在卡片上,调度器会把它分发给负载最低的节点。”
他按下运行键。
显示器上出现了新的输出:
tASK SUbmIttEd:Id=0001, tYpE=FIboNAccI
SchEdULER:dISpAtGNodE 7 (LoAd=0.12)
然后,几秒钟后,七号机的显示器上亮起了计算结果,一行一行绿色的数字,从F1=1到F20=6765。
同时,一号机的显示器上出现了:
tASK 000 StoREd.
陈教授又提交了第二个、第三个、第四个任务,调度器分别把它们分给了节点3、节点11、节点14。所有任务都顺利完成。
他转过身,看着吕辰:“基本功能正常。接下来,你们可以把标准单元库的数据导进去,然后在真机上跑一个真实的设计任务,看看调度器在大负载下的表现。”
吕辰点了点头,心里盘算着下一步的工作。
诸葛彪站在旁边,双臂交叉抱在胸前,盯着屏幕上的输出看了好一会儿,忽然说:“陈教授,这个调度器,能同时跑多少个任务?”
陈教授想了想:“理论上是无限的。任务队列用优先级堆实现,内存里最多缓存一百个,超过一百个的会暂存在存储柜的磁盘上。每个任务提交的时候,调度器会估算它的计算量,当然,估算不准,你们用一段时间之后,可以根据实际运行时间反馈调整估算模型。”
钱兰插了一句:“任务的优先级怎么定?”
陈教授翻开资料,找到一页,指着一个表格:“默认是FIFo,先来先服务。但你们可以给任务打标签,紧急任务可以设置高优先级。调度器在处理队列的时候,优先级高的先出队。”
他又补充道:“这个机制还在实验阶段。你们先用着,有什么问题随时反馈。”
吕辰从笔记本上撕下一张纸,写了一行字:“调度器双机热备待测试、优先级机制待验证。”
然后把纸贴在管理员桌旁边的墙上。
陈教授看着那张纸条,笑了一下:“你倒是会抓重点。”
吕辰也笑了:“陈教授教得好。”
陈教授摆摆手,站起来走到中央存储柜前面,把手掌贴在柜子的铁皮外壳上,感受了一下温度和震动。
柜子里的散热风扇在均匀地运转,发出低沉的嗡嗡声。
他站了几秒钟,然后转过身,看着吕辰。
“小吕,数据库和调度器,我交给你们了。这是种子。你们要做的,是让它长出来。”
他顿了顿,声音低了一些:“理论组能做的,就是把地基打牢、把框架搭好。但真正让这个系统活起来的,是里面的数据,400多个标准单元,两个工艺版本,每一个单元的版图、仿真模型、测试向量。这些东西,计算机所的陈工写不出,理论组写不出,只有你们红星所的人能填进去。”
“种子种下去,能不能发芽,看地,看水,看人。”
吕辰沉默了几秒,然后点了点头:“陈教授,我们不会让种子烂在地里的。”
陈教授没再说什么,拍了拍他的肩膀。
他走到机房门口,回过头,又看了一眼那16台墨绿色的机柜和三个铁柜子。
日光灯的光照在他的眼镜片上,反