四合院:我是雨水表哥
第435章 终究是钱的问题
他走到台上,拿起粉笔,在秦世襄写的“通信瓶颈”旁边,又写了四个字:“同步难题”。
“陈教授,秦教授说的是数据通路的问题。我说的是时间同步的问题。”
他指着黑板上的两个方块:“两个核心一起算一个任务,怎么保证它们步调一致?核心A算得快,核心B算得慢,A等不等B?如果不等,结果怎么拼?如果等,快的那个就闲着,效率上不去。”
他看向陈教授:“这个同步问题,比通信瓶颈更难。几十个核心要同步,需要非常复杂的时钟网络和控制逻辑。”
陈教授点点头:“包教授说得对。同步是并行计算的死穴。但也不是完全无解。”
他走到黑板前,在“同步难题”旁边又写了几个字:“松耦合”、“异步并行”。
“一种思路,是松耦合。让各个核心相对独立,不需要每步都同步。A算完自己的那块,结果先放着;B算完自己的那块,也先放着。等所有核心都算完了,再统一合并。这叫‘分而治之,异步执行’。”
“另一种思路,是异步并行。每个核心按自己的节奏跑,需要数据交换的时候,通过握手信号来协调。你给我发个信号,说你算完了;我收到信号,知道可以取你的结果了。这样不需要全局同步,只需要局部协调。”
他放下粉笔:“这两种思路,都比紧耦合、全局同步容易实现。但代价是,编程复杂。程序员要想清楚,什么时候该同步,什么时候可以异步。”
包康建点点头,在本子上记了几笔。
魏知远举手了。
他走到台上,拿起粉笔,在“同步难题”旁边,又写了四个字:“负载均衡”。
“陈教授,包教授说的是时间同步的问题。我说的是任务分配的问题。”
他指着黑板上的两个方块:“一个任务切分成两块,分给两个核心。如果这两块一样大,两个核心同时算完,完美。但如果一块大一块小,大的那个算半天,小的那个算完就闲着,浪费。”
“这叫负载不均衡。几十个核心的情况下,任务切分要做到完全均衡,几乎不可能。总有一些核心忙死,一些核心闲死。”
他看向陈教授:“这个问题怎么解?”
陈教授想了想:“魏教授,这个问题,没有完美解。只能靠动态调度。”
他在黑板上写下“动态调度”四个字。
“不是事先把任务切死。是准备一个任务池,谁算完了,自己来池子里取下一个任务。这样算得快的核心多干点,算得慢的核心少干点,大家都不闲着。”
“代价是,任务池的访问会变成新的瓶颈。所有人都来池子里取任务,池子门口的队就排长了。”
魏知远点点头,在本子上记了一笔。
刘星海站起来。
他走到台上,看着黑板上那些密密麻麻的字:“通信瓶颈、同步难题、负载均衡......”
他转过身,面对全场。
“同志们,陈教授今天提的这个思路,把一个问题摆在了我们面前,昆仑工程,到底要做多大?”
他顿了顿:“是做一台能用的机器,解决眼前的问题?还是做一个平台,为未来的发展铺路?”
“这不是一个技术问题,这是一个战略问题。”
他看向第一排的首长。
首长沉默了很久。
然后他站起来,走到台上。
他没有看黑板,而是看着台下的每一个人。
“同志们,我今天听了一上午。从宋教授的单核心方案,到陈教授的多核心构想。从通信瓶颈,到同步难题,到负载均衡。我问一句,这些问题,现在能解决吗?”
台下没有人回答。
首长点点头:“解决不了。对不对?”
还是没有人回答。
首长继续说:“那为什么要提?为什么要吵?”
他走到陈教授面前:“老陈,你刚才说,要给未来留一扇门。这话说得对。”
他转过身,面对全场。
“我们这代人,不是只干五年、十年的事。我们要干的是五十年、一百年的事。今天我们造昆仑,不光是给魏教授算数字孪生,不光是给气象局算天气预报,不光是给国防科委算弹道。我们是在给中国的计算机事业打地基。”
“地基打多大,决定了以后能盖多高的楼。”
他指着黑板上那些字:“通信瓶颈、同步难题、负载均衡。这些问题,现在解决不了,但将来总要有人解决。谁来解决?我们这一代人。如果今天我们不想这些问题,将来的人就要从头想。”
他顿了顿:“所以,我支持陈教授的思路。单核心要造,接口要留。今天造单核心,明天造双核心,后天造四核心、八核心。一步一步往前走。”
他看向刘星海:“老刘,你们继续讨论。把这些问题都掰开揉碎了,能解决几条是几条。解决不了的,也要记下来,留给后人。”
刘星海点点头。
首长回到座位。
刘星海看向全场:“同志们,首长说得对。这些问题,今天解决不了,但要记下来。继续讨论。”
接下来,会场炸了锅。
从物理层吵到逻辑层,又从逻辑层吵到软件层。
秦世襄带着一帮搞硬件的,盯着“通信瓶颈”不放。
数据总线到底要做多宽?16位够不够?要不要32位?64位?做宽了,芯片引脚不够;做窄了,数据堵在路上。
包康建带着一帮搞存储的,盯着“同步难题”不放。
核心之间要不要用同一个时钟?如果用,怎么保证传输延迟一致?如果不用,怎么保证异步握手可靠?
魏知远带着一帮搞算法的,盯着“负载均衡”不放。
任务切分怎么做到均衡?动态调度怎么做才不成为瓶颈?编程模型怎么设计才不让程序员发疯?
还有一帮人,盯着“可靠性”不放。
几十个核心一起跑,一个坏了怎么办?是整机停摆,还是自动隔离?怎么设计容错机制?
吵了两个小时,没有结论。
刘星海站起来,敲了敲桌子。
“同志们,停一停。”
会场安静下来。
刘星海说:“今天吵不出结果,不奇怪。这些问题,全世界都没人解决。我们能把问题提出来,记下来,就是收获。”
他看向陈教授:“老陈,你说说,下一步怎么办?”
陈教授站起来,走到黑板前。
“同志们,今天我们吵的这些,归根结底一句话,单核心好做,多核心难做。但难做,不是不做。我们要做的是,在今天这个单核心的基础上,把接口留好,把协议想好,把坑蹚一遍。”
他在黑板上画了一个图。
一个核心,旁边有几个空着的虚线框。
“这是我们的计划。第一期,单核心。造出来,能用。第二期,双核心。把两个核心连起来,解决最简单的并行问题。第三期,四核心。第四期,八核心。一步一步走,每走一步,解决一批问题。”
他放下粉笔:“同志们,这叫演进式发展。不是一口吃成胖子,是一步一个脚印。”
台下响起一阵掌声。
但掌声还没落,有人站起来。
《四合院:我是雨水表哥》 第435章 终究是钱的问题 精彩章节在线阅读。本章共计 5721 字。