【问题标题】:Is it possible implement Pregel in Erlang without supersteps?是否可以在没有超级步骤的情况下在 Erlang 中实现 Pregel?
【发布时间】:2011-11-20 21:11:51
【问题描述】:

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

在 Pregel 的并发 Erlang 实现中 supersteps 的全部目的是什么?

【问题讨论】:

  • 嘿马丁..由于某种原因,我无法回复您在我的博客上的评论。
  • 嘿,阿伦...我会在你的博客上等待回复。
  • 请删除 phoebus 文件夹并从 git 重新克隆它。确保你已经下载了 rebar 可执行文件并且它在你的 PATH 中可用。 “生成”应该可以工作

标签: erlang parallel-processing erlang-otp


【解决方案1】:
  • Pregel 模型支持的 SuperStep 概念可被视为并行执行实体的障碍。在每个超级步骤结束时,每个工作人员都会将其状态刷新到持久存储。
  • 该算法在每个 SuperStep 结束时都有检查点,这样在发生故障时,当一个新节点必须接管故障对等方的功能时,它就有一个起点。 Pregel 保证,由于节点的数据在 SuperStep 启动之前已被刷新到磁盘,因此它可以可靠地从该点开始。
  • 它在某种程度上也表示算法的“进步”。可以为预凝胶算法/作业提供“最大超步数”,在此之后算法应终止。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多