传输和计算
Posted dog250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传输和计算相关的知识,希望对你有一定的参考价值。
我本胡言乱语。
昨天的一篇短文:
通用计算机器
今天假期最后一天,接着说几句。
图灵机将步骤按照时间展开,替代将部分空间中连线延展,成就了通用计算机器,我们现在的计算机都是图灵机的形式。
这就必然会有内存和CPU之间的通信,就算如火如荼的存内计算也不过是小范围优化,既然词中还有“存”,便没有改变本质,内存和CPU依旧两隔。
但时间展开和空间展开真的就是固然对立的吗?非也。
虽然计算组件不能在空间扩展,因为太占地方,但已经按照时间扩展的步骤却可以自由组合和递归,实现新的功能。这便是Unix哲学的实例了。
组合使用命令,cat a|grep skinshoe|wc -l就是一个例子。
好了,该总结“道”和“法”了。
为了通用,在最底层,将一个任务拆成不同步骤,这些步骤在时间轴展开分时复用计算元组件。这就形成了一个通用的“软件核”,剩下的便是空间展开的外围了。
软件核之间需要信息交互,信息交互最终落实到传输,目之所及的正确做法是,只传输结果,不传输过程,过程封装在软件核中。
结果就是端到端原则。背后的逻辑是:
- 传输希望bit不被改变,过程传输需要端到端容错,只传结果可增效。
- 计算希望bit被改变,避免传输过程可让bit的改变发生得更快。
只传输结果不传输过程,意味着交互的消息始终是无状态的,除了端到端,中间介质无需维护任何状态,只需尽力而为。
其实,在软件核的层次,这个规律依然适用,Load/Store指令在CPU和内存之间传递的就是结果,所有的过程只在CPU中完成。
微内核,云原生微服务,无不如此,消息交互。
可是看起来又有例外不是吗?RIP,STP等协议确实是在彼此交互过程,最终收敛到一致的结果,如何解释?这叫分布式计算,你把所有参与者作为一个整体看待,它便又是一个软件核了,若不当一个整体看待,单凭这些参与方彼此交互过程,是无法扩展规模的。
所以,大规模分布式计算一直都是通用计算的对立面。
人脑偏向于哪一个?AI的选择呢?
浙江温州皮鞋湿,下雨进水不会胖。
以上是关于传输和计算的主要内容,如果未能解决你的问题,请参考以下文章