Questions tagged «dc.distributed-comp»

分布式计算中的理论问题

4
为什么我们无法开发统一的分布式计算复杂性理论?
在开发用于描述分布式算法的单一数学理论方面,分布式计算领域严重不足。分布式计算有几种“模型”和框架,它们彼此根本不兼容。各种时间特性(异步,同步,部分同步),各种通信原语(消息传递与共享内存,广播与单播),多种故障模型(故障停止,崩溃恢复,发送遗漏,拜占庭式等等)的爆炸性增长上)给我们留下了许多棘手的系统模型,框架和方法论,要比较这些模型和框架的相对可解性结果和下界变得艰巨,棘手,有时甚至是不可能的。 我的问题很简单,为什么会这样呢?分布式计算(与顺序计算相比)有什么根本的区别,以至于我们无法将研究归纳为统一的分布式计算理论?通过顺序计算,图灵机,递归函数和Lambda演算都被证明是等效的。这仅仅是运气吗,还是我们确实以封装分布式计算尚无法实现的方式封装顺序计算方面做得很好? 换句话说,分布式计算本质上是不屈服于一个优雅的理论的(如果是的话,怎么以及为什么?),或者我们仅仅是不够聪明地发现这种理论? 我能找到的唯一解决此问题的参考文献是:Fischer和Merritt撰写的“评估二十年的分布式计算理论研究 ” DOI:10.1007 / s00446-003-0096-6 任何参考或说明都会非常有帮助。

10
当前用于计算的并行模型
1980年代出现了并行计算的PRAM和BSP模型。似乎两个模型的鼎盛时期都在80年代末和90年代初。 这些领域在并行算法的研究方面仍然活跃吗?是否有更新的更复杂的模型用于并行计算?通用模型是否仍在流行,或者研究人员正在尝试专门研究GPGPU或基于云的计算吗?


1
在不显示值的情况下估计分布式节点之间的百分位数
此问题是从“交叉验证” 迁移而来的,因为可以在“理论计算机科学堆栈交换”上进行回答。 迁移 8年前。 我有一个非常独特的问题要解决,我希望这里的人可以让我对如何最好地解决它有所了解。 问题:假设在一组参与者之间共享N个号码的列表,使得没有一个参与者实际知道他们共享的任何号码。所有参与者都知道N(数字列表的大小)和列表上所有数字的总和,但仅是先验的。 通过一起工作,可以比较两个共享数字a和b,使参与者了解语句“ a <b”是否为真,但仅此而已。但是,这是一件极其昂贵的事情(阅读:完成单个比较可能要花费几秒钟,甚至是几分钟)。有关如何进行此操作的更多信息,请参见本文末尾。 最终,各方希望输出列表中哪些索引对应于列表中的“前K%”(最大的K%)共享数。当然,这可以通过排序或使用“前K个”选择算法来完成。但是,这些往往会使用大量比较,这是可以避免的。(这些是O(n log n)或O(n),具有相当大的隐藏常数。) 另一种选择是“猜测”数字X,其中(1-K)%小于X并且K%大于。然后,您可以将每个元素与X进行比较,看看有多少个元素较大,有多少个元素较小。如果您的猜测是错误的,请使用二进制搜索之类的方法进行修改,直到收敛到正确的解决方案为止。如果您的猜测是正确的,那么需要进行的比较少得多。 所以,我的问题是 仅给出N和总和,“预测” X的最佳方法是什么? 当然,这将取决于基础分布。对于不同的用例,基本的分布可能会有所不同,但将是已知的,因此,我对所有常见解决方案(正态,统一,指数,也许还有其他)的良好解决方案感兴趣。我也很想听听有关如何最好地进行“二元”搜索以最大程度减少步骤的建议(假设对基础分布有假设)。 附录:使用Shamir的秘密共享方案在参与者之间共享列表中的每个值。假设有M个参与者,并且列表的长度为N。那么,列表上的第i个数字由某个有限域F上阶次为M-1 的多项式表示的常数项是共享,则从F随机选择所有其他系数。然后,第j个参与者的份额为,fifif_i˚F 我(Ĵ )1 ≤ 我≤ Ñfifif_ifi(j)fi(j)f_i(j)1≤i≤N1≤i≤N1\leq i\leq N。鉴于此份额,参与者没有有关该号码的信息(从信息论的角度而言);实际上,没有适当的参与者子集可以结合知识来学习有关共享号码的任何信息。但是,使用复杂的安全多方计算技术,可以在不透露任何更多信息的情况下确定一个共享值是否小于另一个共享值。这种技术需要所有参与者的配合,这就是为什么这样做的成本如此之高,并且应该尽可能少地进行几次的原因。


4
无限大但局部有限的计算问题
这个问题的灵感来自Jukka Suomela对另一个问题的评论。 无限大但局部有限的计算问题(和算法)的示例是什么? 换句话说,什么是在有限时间内停止的计算示例,其中每台图灵机仅读取和处理有限数据,但是如果有无数的图灵机联网在一起,则该计算可以解决无限大的问题?

1
经典Paxos和Fast Paxos的正确性证明
我正在阅读Leslie Lamport 撰写的“ Fast Paxos”论文,并被经典Paxos和Fast Paxos的正确性证明所困扰。 为了保持一致性,协调人在第i轮第2a阶段选择的值应该满足2 一个我vvv2a2a2aiii CP(v,i):CP(v,i):CP(v,i):对于任何圆形j&lt;ij&lt;ij < i,不大于其他值vvv已经或可能还没有被在轮选择jjj。 对于经典Paxos,证明(第8页)分为三种情况:k&lt;j&lt;ik&lt;j&lt;ik < j < i,j=kj=kj = k和j&lt;kj&lt;kj < k,其中kkk是最大舍入数,其中某些接受者已通过阶段1b1b1b消息向协调者报告。我无法理解第三种情况的论点: 情况j&lt;kj&lt;kj < k。我们可以归纳为假设,在接受者a_0在第k轮中投票给v时,财产CP成立。这意味着在第j轮中除v之外没有其他值可能被选择。CPCPCPa0a0a_0vvvkkkvvvjjj 我的问题是: 为什么我们可以假定在接受者在第轮中对投票时拥有财产?a 0 v kCPCPCPa0a0a_0vvvkkk 似乎我们正在使用数学归纳法,因此,基础,归纳假设和归纳步骤是什么? 对于Fast Paxos,将继续使用相同的参数(页18)。它说, 情况。对于任何在,并不比其他值已经或可能尚未被在第二轮选择。v V v jj&lt;kj&lt;kj < kvvvVVVvvvjjj 我的问题是: 如何获得?特别是,为什么“对于任何在 ”在这里?VvvvVVV 在我看来,情况的正确性证明(递归)取决于和。 k &lt; j &lt; i j = kj&lt;kj&lt;kj < …

1
分布式系统中是否存在一些规范问题?
上周,我再次阅读了莱斯利(Leslie)的兰莫特(Lamport)于1982年撰写的一次会议的摘要,该会议他发表了有关并发问题的解决,未解决的问题和非问题的讨论。该论文易于阅读,但让我思考的一件事是以下主张: 是否可以将任何问题视为互斥问题或生产者-消费者问题,或两者兼而有之? 我想知道分布式系统案例是否已经回答了这个问题。 是否存在一组规范的分布式系统问题,可以从中解决所有可能的分布式系统问题?这是什么规范清单? 如果没有规范列表,那么当前的问题列表是什么,存在哪些减少措施? 例如,我很天真地说,领导人选举和互斥问题可以简化为共识问题。我还要说,分布式快照可以减少为分布式时钟。是对还是错? 如果可能的话,我希望答案能为支持其主张的已发表论文提供参考:)

2
确定社交网络中影响节点的分散算法
在Kempe-Kleinberg-Tardos的这篇论文中,作者提出了一种基于子模函数的贪心算法,用于确定图中的最具影响力的节点,并将其应用于社交网络。kkk 基本上,算法如下: S=empty setS=empty setS = {\rm empty~set} 选择个人影响力最高的节点,将其称为;v1v1v_1S=S∪v1S=S∪v1S = S\cup v_1 删除和连接所有边缘到网络的其余部分v1v1v_1v1v1v_1 重复直到有个顶点SSSkkk 关于社交网络中的影响节点,我有两个问题。 a)是否有任何算法可以找到解决方案,或者以分散方式对其进行近似? b)是否有人应用其他算法(例如Page-Rank和类似算法)来解决同一问题?

5
分布式计算中的处理器故障不是崩溃或拜占庭式的
分布式计算模型中的处理器故障主要有两种类型: (1)崩溃失败:处理器停止运行,再也不会启动。(2)拜占庭式故障:处理器恶意地进行对抗。 我的问题是: 已经研究了哪些其他类型的处理器故障,这些故障不会减少到崩溃或拜占庭式故障? 另外,还有一个更具体的问题: 是否已研究过某个模型,该模型有可能在时间步处开启流程,而在其他时候关闭?因此,每个过程都照常眨眼。ttt 我对这些失败与共识和其他分布式协议问题之间的关系最感兴趣。 谢谢。

2
随机八卦的复杂性
分布式系统中的闲聊问题如下。我们有一个带有n个顶点的图每个顶点v都有一条消息m v,必须将其发送到所有节点。GGGnnnvvvmvmvm_v 现在,我的问题是在自组织网络模型的背景下(我们假设节点对网络的拓扑结构,其进出度和邻域集没有任何先验知识。只有每个节点的知识是其自己的标识符和节点总数)。 我还假定所有节点都可以访问全局时钟,并在称为回合的离散时间步中同步工作。 在这种情况下,算法的复杂性是完成所需的轮数。 我记得有一种算法可以高概率地解决O(nlog2n)O(nlog2⁡n)O(n \log ^2 n)回合中的闲聊问题。但是我再也找不到参考资料了,我想知道在此问题上是否还有最新的结果。 根据明智的评论进行编辑:在每个回合中,节点可以将消息传输到其所有邻居,并且可以从邻居那里接收消息。当且仅当节点的某个邻居恰好在该回合发送时,该节点才会在给定的回合接收消息。否则,将发生冲突,并且节点不会收到任何消息。

3
通过网络进行有效的DAG比较
在分布式版本控制系统(例如Mercurial和Git)中,需要有效地比较有向无环图(DAG)。我是一名Mercurial开发人员,对于听到有关讨论比较两个DAG的时间和网络复杂性的理论工作,我们将非常感兴趣。 有问题的DAG由记录的修订构成。修订由哈希值唯一标识。每个修订依赖于先前修订的零(初始提交),一个(普通提交)或多个(合并提交)。这是一个示例,一个接一个a地e进行修订: a --- b --- c --- d --- e 当某人仅拥有部分历史记录并想要检索缺失的部分时,图形比较就会出现。想象一下,我只好a到c并提出x和y基于c: a --- b --- c --- x --- y 在Mercurial中,我将进行hg pull下载d和e: a --- b --- c --- x --- y \ d --- e 目标是确定图何时具有许多(例如,超过100,000个)节点d并e有效地进行识别。效率兼顾 网络复杂度:传输的字节数和所需的网络往返数 时间复杂度:交换变更集的两个服务器完成的计算量 典型的图形将很狭窄,几乎没有像上述的平行轨迹。还有通常只有叶节点少数的(我们称之为水银他们的头),如e与y以上。最后,当使用中央服务器时,客户端通常会有几个不在服务器上的变更集,而服务器可以为客户端提供100多个新变更集,具体取决于客户端上一次从服务器上拉出的是谁。一个非对称解决方案是首选:集中式服务器应该比较给客户做一点计算。


1
设计确定性分布式算法的优点是什么?
可以对故障进行恢复的分布式算法可以是确定性的也可以是概率性的。以共识问题为例。 Paxos的是,鉴于它使假设的意义上确定的,它总是有效。 相反,随机共识以给定的概率起作用。 设计和使用确定性算法的优点是什么? 确定性算法所依赖的假设也有可能在现实中成立(称为假设覆盖率)。因此,现实中总是存在确定性算法不起作用的可能性。

2
为什么线性化是安全属性,为什么安全属性是封闭集?
在南希·林奇(Nancy Lynch)的《分布式算法》(Distributed Algorithms)一书的第13章“原子对象”中,线性化(也称为原子性)被证明是安全性。也就是说,其相应的跟踪属性是非空的,前缀关闭的和限制关闭的,如第8.5.3节中所定义。非正式地,安全特性通常被解释为说某些特定的“坏”事情永远不会发生。 基于此,我的第一个问题如下: 线性化作为安全属性有哪些优势?文献中是否有基于此事实的结果? 在研究安全性和活动性的分类时,众所周知,安全性可以被描述为适当拓扑中的封闭集。在Amir Pnueli等人在1993年发表的论文《安全-进展分类》中。,采用度量拓扑。更具体地说,属性是字母一组(有限或无限)单词。属性由所有无限字,使得所有的前缀属于。例如,如果,则ΦΦ\Phi甲(Φ )σΣΣ\SigmaA(Φ)A(Φ)A(\Phi)σσ\sigmaΦ Φ = 一个+ b *阿(Φ )= 一σσ\sigmaΦΦ\PhiΦ=a+b∗Φ=a+b∗\Phi = a^{+}b^{\ast}A(Φ)=aω+a+bωA(Φ)=aω+a+bωA(\Phi) = a^{\omega} + a^{+}b^{\omega}。如果的某些最终特性则将最终特性定义为安全特性。度量无限字之间和被定义为0,如果它们是相同的,并且否则,在那里是他们同意的最长公共前缀的长度。使用此度量,可以将安全特性表征为拓扑上的封闭集。ΠΠ\PiΦ d (σ ,σ ')σ σ ' d (σ ,σ ')= 2 - Ĵ ĴΠ=A(Φ)Π=A(Φ)\Pi = A(\Phi)ΦΦ\Phid(σ,σ′)d(σ,σ′)d(\sigma, \sigma')σσ\sigmaσ′σ′\sigma'd(σ,σ′)=2−jd(σ,σ′)=2−jd(\sigma, \sigma') = 2^{-j}jjj 这是我的第二个问题: 如何在拓扑上将线性化描述为封闭集?特别是,基础集是什么,拓扑是什么?

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.