为什么我们无法开发统一的分布式计算复杂性理论?


41

在开发用于描述分布式算法的单一数学理论方面,分布式计算领域严重不足。分布式计算有几种“模型”和框架,它们彼此根本不兼容。各种时间特性(异步,同步,部分同步),各种通信原语(消息传递与共享内存,广播与单播),多种故障模型(故障停止,崩溃恢复,发送遗漏,拜占庭式等等)的爆炸性增长上)给我们留下了许多棘手的系统模型,框架和方法论,要比较这些模型和框架的相对可解性结果和下界变得艰巨,棘手,有时甚至是不可能的。

我的问题很简单,为什么会这样呢?分布式计算(与顺序计算相比)有什么根本的区别,以至于我们无法将研究归纳为统一的分布式计算理论?通过顺序计算,图灵机,递归函数和Lambda演算都被证明是等效的。这仅仅是运气吗,还是我们确实以封装分布式计算尚无法实现的方式封装顺序计算方面做得很好?

换句话说,分布式计算本质上是不屈服于一个优雅的理论的(如果是的话,怎么以及为什么?),或者我们仅仅是不够聪明地发现这种理论?

我能找到的唯一解决此问题的参考文献是:Fischer和Merritt撰写的“评估二十年的分布式计算理论研究 ” DOI:10.1007 / s00446-003-0096-6

任何参考或说明都会非常有帮助。

Answers:


26

我的观点是,直到最近,抽象动机的图灵机计算模型还是对技术的良好近似,而分布式计算模型从一开始就受到现实世界的启发,而现实世界总是比抽象更混乱。

从1940-1995年开始,问题实例的大小,并行性和并发性的相对“不重要”以及计算设备的宏观规模,都“密谋”使Turing机器与真实计算机完美地融合在一起。但是,一旦开始处理海量数据集,对并发性的普遍需求,通过算法的视角进行生物学等等,那么,是否存在“直观”的计算模型还远远不够。在一个模型中可能很难解决的问题在另一个模型中并不难-严格地说,计算复杂度要低。因此,我相信主流计算复杂性最终将通过开始考虑现实世界的考虑而开始考虑多种计算和数据结构模型,从而最终赶上分布式计算(!)。


7
还请考虑各个领域的定义性问题。“假设您可以完美地计算。您可以做什么和不能做什么的局限性是什么?” 与“假设您的渠道,处理器有问题,或者假设您有对手。遇到这些障碍时如何成功计算?” 第一个问题更有可能产生“干净”的答案。第二个要求是科学化混乱。
亚伦·斯特林2010年

21

我将从经典图形问题(或输入/输出问题)的角度回答这个问题:我们有一个网络,每个节点都得到一些输入作为输入,每个节点都必须产生一些输出。我猜这与传统计算复杂性世界最接近。

当然,我偏见,但我认为,在此背景中,一种简单的分布式计算比较常用型号:同步分布式算法,与定义,运行时间=同步轮数。用Peleg的术语来说,这是LOCAL模型。

这个模型很好,因为它只有很少的“运动部件”,没有参数,等等。然而,它是非常具体的:可以说算法的运行时间恰好是15。您可以证明无条件的信息理论下限:从这个角度来看,许多图形问题(例如图形着色)的分布复杂性是相当容易理解的。

该模型还为分布式计算的许多方面提供了统一的方法:

  • 消息传递与共享内存,广播与单播:在此模型中无关。
  • 您的实际系统是异步的吗?没问题,只需插入 -synchroniser。时间复杂度(具有合适的定义)基本上不受影响。α
  • 您是否想要针对动态网络的算法,还是想从故障中恢复?好吧,如果您的同步算法是确定性的,则可以使用它来构造自稳定算法。同样,时间复杂度基本上不受影响。

现在,只要您研究的是“真正分布的”问题(从算法的运行时间小于图的直径)的角度来看,这一切就很好,即,没有节点需要有关树结构的完整信息。图形。但是,还有许多固有的全局性问题:此模型中最快的算法的运行时间与图形的直径成线性关系。在研究这些问题时,以上模型不再有意义,因此我们需要诉诸其他方法。通常,人们开始关注网络中传递的消息或比特的总数。这就是为什么我们得到几种不同模型的原因之一。


那么,当然有一个问题,分布式计算社区实际上是两个不同的社区,令人惊讶的是很少有共同点。如果两个社区的所有模型放在一起,那肯定让人感到困惑。我上面的回答只涉及社区的一半;我相信其他人会填写另一半。


如果我正确理解这一点,那么关键是,只有一个优雅的理论仅适用于同步系统,而没有太多其他理论。对于除同步系统以外的系统,我们正在将来自两个原本不同的社区的问题/焦点融合在一起,这提出了发展单一理论的方法论问题。我是否正确理解了您的论点?
Srikanth Sastry,2010年

感谢您提供的非常有用的答案。我将其作为答案。
Mohammad Al-Turkistany

5

捕捉代数计算的各种模型的一种浪漫想法是通过代数拓扑。核心思想是通过将点作为过程状态来构造简单复合物,每个状态都标记有一个过程ID。这是该主题的入门。Eli gafni在他的论文《分布式计算》(《一线理论》中)曾触及到最接近您问题的答案。在他的论文中,他展示了如何从两三个处理器(用于故障停止和拜占庭式)的异步共享内存开始的模拟-他展示了如何将其应用于消息传递模型。了解他的模拟至关重要的是从拓扑上查看分布式计算的概念


4

我认为,如果从上下文的角度来看,情况看起来会大不相同:从早期的工作和关于拜占庭协议的不可能结果开始(PSL80 LSP82 FLP85),很快就可以看出,只有严格的同步假设和高度的冗余才能完全解决分布式计算中的基本问题。由于这些无条件的理论资源下限在任何实际目的上都被认为是不可行的,因此研究着重于开发更精细的模型,该模型允许对假设(例如时序保证或失败模式)与保证(即数量的保证)进行细粒度的权衡。同时容忍何种类型的组件(例如处理器,链接)发生故障,以便为系统设计人员提供工具,以为手头的系统找到正确的权衡。


我了解引入了改进的模型是为了了解分布式空间中问题的“实用”可解性。人们会期望这些细粒度的模型在可解性,时间复杂度和消息复杂度方面将它们整齐地排列在一个层次结构中。不幸的是,这种情况并非如此。我的问题是,进行这种巴尔干化的原因是什么?如果这是分布式计算固有的某些属性,那么它们是什么?
Srikanth Sastry
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.