分布式计算0

 

分布式系统可以建立精确的数学模型,其上的算法与性质都是可以证明的,这是最近看一本分布式算法的专著的感受。其中在论及分布式系统的时间概念时,谈到其逻辑时钟是整个系统上的一个序关系Φ,这个序关系可以把系统中的事件序列映射到一个自然数集合上:

 

                     ΦEvent = { 01… }

除因果事件外,则还有平行事件的存在。故这种映射关系也不是唯一的。这样一个浅显的性质,在做分布式算法模拟的时候,是要给予考虑的。

记得2004年毕业设计时曾做路由算法的模拟,当时的重点虽然定在路由模拟与演化计算路由算法的设计两点上,可实际做的时候,精力还是放在了后者。虽然也比较了与传统算法的时间效率,但并不是建立在真正的“路由模拟”的概念上,所以说那个毕业设计做的有点不合格(至少应该把题目改了)。

 

最近有朋友找路由模拟的材料,又提起了04年的那个东西,所以顺便提一提。而巧的是,5-1前一个朋友也是因着这个途径找到了我,让帮忙做一个工控网络中的路由模拟。因逢5-1而答应了,又想了一下这个问题。

首先,对于一个分布式系统的活动,可以抽象为一个事件的集合(暂时不考虑其中种种的关系,所以称之为集合)。比如路由计算的过程,也就是发送数据、等待数据、接收数据、叫传中继路由表、计算路由表等事件的集合。这样做的话,模拟系统模拟的主要对象,以及模拟数据的来源,都是这个事件集合。

事实上,对于一个分布式算法,其自身是无法计算得到系统的逻辑时钟所映射的自然数标号集的。所以如果不是实验观察数据,而是通过模拟的话,模拟系统自然需要这种监控事件的计算能力。

然后,则需要根据实际网络的特点,定义各种参数,以及事件的类型、事件之间的关系和事件的发生机制。

因为这个朋友要做的是工控网络的路由模拟,而不是计算机网络,这其中有一些其自身的特点。比如,一个网络中有一个大功率的设备(集中器),它可以与大多数的小计算设备(表记)进行联系,而表记之间进行联系则困难的多(更多的时候是呼叫不到的);另外,因为网络带宽的原因,传输线上任意时刻至多只能有一个信号(数据包),这一特点也就使得这个网络中没有了平行事件发生的可能性;还有一些其它的数据,不再列举。

做完了这些,才到了路由算法的考虑,并模拟这个路由算法,获得模拟数据。

 

如果04年沿着这样一个思路去做,我想才勉强过关:)。当然,当时我没有找到比较权威的模拟方案,直到现在这些想法也都是自己琢磨的,毕竟没有系统学过模拟或仿真系统的设计,所以今日的帖子仅作参考。欢迎批评与讨论。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值