3

假设我们用 Erlang实现Pregel 。为什么我们实际上需要超级步骤?只将消息从一个主管发送到代表节点的进程不是更好吗?他们可以将计算功能应用到自己身上,互相发送消息,然后向主管发送“完成”消息。

Pregel的并发Erlang实现中超级步骤的全部目的是什么?

4

1 回答 1

3
  • Pregel 模型所支持的 SuperStep 概念可以被视为并行执行实体的一种障碍。在每个超级步骤结束时,每个工作人员将其状态刷新到持久存储。
  • 该算法在每个 SuperStep 的末尾都有检查点,以便在失败的情况下,当一个新节点必须接管失败对等节点的功能时,它就有一个起点。Pregel 保证,由于节点的数据在 SuperStep 开始之前已经被刷新到磁盘,它可以可靠地从那个点开始。
  • 它在某种程度上也表示算法的“进步”。可以为预凝胶算法/作业提供“最大超步数”,在此之后算法应终止。

您在问题中指定的内容(关于主管向工人发送计算功能并等待“完成”)绝对可以实现(尽管我认为当前与 OTP 打包的主管不能开箱即用地做类似的事情)但我猜SuperStep 的概念只是 Pregel 模型的要求。另一方面,如果您正在实现类似并行映射器的东西(就像乔在他的书中实现的那样),您将不需要超级步骤/

于 2011-09-20T10:17:38.047 回答