第510章 系统布署(2/2)
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
吕辰点头,在本子上记下来。
数据库装完了,接下来是分布式调度微程序。
陈教授走到一号机前面,打开机柜门,从帆布包里拿出另一个防静电盒,里面是一块只读存储器芯片。
“调度器的微程序,固化在这块芯片里。插到一号机的接口板上。一号机就是主控节点。”
吕辰接过芯片,插到一号机接口板上的预留插槽。
陈教授走到操作台前,按下电源开关,插入引导卡,读卡机“咔嗒”一声。
显示器上的字符开始跳动:
LOADINGSCHEDULERMICROCODE……
MICROCODELOADEDAT0x2000
INITIALIZINGTASKQUEUE……
INITIALIZINGABLE……
DETEGNODES……
屏幕上出现了一个表格,16行,每一行对应一台KJ-0A。第一列是节点编号,第二列是状态,第三列是IP地址(他们用简单的数字编号代替IP)。
NODE0STATUS:ONLINEADDR:0
NODE1STATUS:ONLINEADDR:1
……
NODE15STATUS:ONLINEADDR:15
16台机器的状态全是“ONLINE”。
陈教授点了点头,又敲了一个命令:
STARTHEARTBEAT
屏幕上开始每隔十秒跳出一行:
HEARTBEAT:ALLNODESRESPONDED
HEARTBEAT:ALLNODESRESPONDED
HEARTBEAT:ALLNODESRESPONDED
调度器的主控节点开始向其他十五台机器发送心跳包,每一台都正常响应。
“调度器跑起来了。”陈教授的声音很平静,但吕辰注意到他扶眼镜框的手指微微顿了一下。
“接下来测试任务分发。”陈教授从帆布包里拿出一张二维卡,插进一号机的读卡机,“这是一个简单的测试任务——计算斐波那契数列的前二十项。任务描述写在卡片上,调度器会把它分发给负载最低的节点。”
他按下运行键。
显示器上出现了新的输出:
TASKSUBMITTED:ID=0001,TYPE=FIBONACCI
SCHEDULER:DISPATGTONODE7(LOAD=0.12)
然后,几秒钟后,七号机的显示器上亮起了计算结果,一行一行绿色的数字,从F1=1到F20=6765。
同时,一号机的显示器上出现了:
TASK0001PLETED.RESULTSTORED.
陈教授又提交了第二个、第三个、第四个任务,调度器分别把它们分给了节点3、节点11、节点14。所有任务都顺利完成。
他转过身,看着吕辰:“基本功能正常。接下来,你们可以把标准单元库的数据导进去,然后在真机上跑一个真实的设计任务,看看调度器在大负载下的表现。”
吕辰点了点头,心里盘算着下一步的工作。
诸葛彪站在旁边,双臂交叉抱在胸前,盯着屏幕上的输出看了好一会儿,忽然说:“陈教授,这个调度器,能同时跑多少个任务?”
陈教授想了想:“理论上是无限的。任务队列用优先级堆实现,内存里最多缓存一百个,超过一百个的会暂存在存储柜的磁盘上。每个任务提交的时候,调度器会估算它的计算量,当然,估算不准,你们用一段时间之后,可以根据实际运行时间反馈调整估算模型。”
钱兰插了一句:“任务的优先级怎么定?”
陈教授翻开资料,找到一页,指着一个表格:“默认是FIFO,先来先服务。但你们可以给任务打标签,紧急任务可以设置高优先级。调度器在处理队列的时候,优先级高的先出队。”
他又补充道:“这个机制还在实验阶段。你们先用着,有什么问题随时反馈。”
吕辰从笔记本上撕下一张纸,写了一行字:“调度器双机热备待测试、优先级机制待验证。”
然后把纸贴在管理员桌旁边的墙上。
陈教授看着那张纸条,笑了一下:“你倒是会抓重点。”
吕辰也笑了:“陈教授教得好。”
陈教授摆摆手,站起来走到中央存储柜前面,把手掌贴在柜子的铁皮外壳上,感受了一下温度和震动。
柜子里的散热风扇在均匀地运转,发出低沉的嗡嗡声。
他站了几秒钟,然后转过身,看着吕辰。
“小吕,数据库和调度器,我交给你们了。这是种子。你们要做的,是让它长出来。”
他顿了顿,声音低了一些:“理论组能做的,就是把地基打牢、把框架搭好。但真正让这个系统活起来的,是里面的数据,400多个标准单元,两个工艺版本,每一个单元的版图、仿真模型、测试向量。这些东西,计算机所的陈工写不出,理论组写不出,只有你们红星所的人能填进去。”
“种子种下去,能不能发芽,看地,看水,看人。”
吕辰沉默了几秒,然后点了点头:“陈教授,我们不会让种子烂在地里的。”
陈教授没再说什么,拍了拍他的肩膀。
他走到机房门口,回过头,又看了一眼那16台墨绿色的机柜和三个铁柜子。
日光灯的光照在他的眼镜片上,反射出一片白茫茫的光,看不清他的眼神。
然后他推门出去了。
走廊里的热浪涌进来,和机房的冷气撞在一起,在地面上凝出一层薄薄的水雾。
吕辰站在机房门口,看着陈教授的背影消失在走廊尽头。
帆布包空了,扁扁地搭在他肩上。
脚步声越来越远,最后被风扇的嗡嗡声吞没。
吕辰回到管理员桌前,看着屏幕上那个绿色的提示符:“DB>”
他敲了一个命令:DB>SHOWTABLES
屏幕上列出了三张表:CELLS、PROJECTS、TASKS。
CELLS是标准单元库,空的。
PROJECTS是项目信息,空的。
TASKS是任务记录,空的。
三张空表,像三块刚翻好的地,等着播种。
吕辰把那个命令记在笔记本上,合上本子,转过身。
诸葛彪和钱兰站在他身后,一个叼着烟,一个抱着笔记本,都看着他。
“明天开始,标准单元库录入。”吕辰说,“12台机器录入,四台机器校验,三班倒。先把最常用的50个门电路,与非门、或非门、反相器、传输门,两个工艺版本,一共一百条记录,优先填进去。两天之内,我要看到数据库里有数据。”
他又补了一句:“有了这一百个门,我们就可以开始设计存储芯片了。”
诸葛彪把烟从嘴里拿下来,弹了弹烟灰:“录入格式呢?手册里那些坐标数据,怎么转换成文本文件?”
“今晚定。钱师姐,你带人写一个录入模板。每个单元的版图坐标按‘图层:起点X,起点Y,终点X,终点Y’的格式写。仿真模型按‘参数名=参数值’的格式写。测试向量按‘输入A,输入B,输出Y’的格式写。统一标准,方便导入。”
钱兰点头,在本子上记下来。
“曾师兄,你负责调度器的日常监控。明天开始,让系统连续跑72小时,记录心跳、任务分发、任务回收的数据。任何异常都要记下来,反馈给陈工。”
曾祺应了一声。
“周建国,你带第一小队的人,把机房的值班表排出来。三班倒,每班八小时,交接班要有记录。谁录入、谁校验、谁复核,每一条数据都要有责任人。”
吕辰把任务一条一条地分配下去,笔记本上的字迹潦草但力道很重。
分配完的时候,已经快中午了。
阳光从机房的窗户照进来,透过双层玻璃,在墨绿色的机柜上投下一片金黄。
16台KJ-0A的显示器都亮着,屏幕上显示着“DB>”的提示符,安静地等待着。
像16个沉默的农夫,等着播种。
吕辰站在机房中央,看着这一切。
锄头已经造好,能翻出什么样的地,接下来就看怎么挖了。