是否可以在没有supersteps的情况下在Erlang中实现Pregel?
问题描述:
假设我们用Erlang实现了Pregel。为什么我们实际上需要超级步骤?从一个主管发送消息到代表节点的进程是不是更好?他们可以将计算函数应用于自己,相互发送消息,然后向主管发送“完成”消息。是否可以在没有supersteps的情况下在Erlang中实现Pregel?
Pregel的并发Erlang实现中超级步骤的全部用途是什么?
答
- Pregel模型提出的SuperStep概念可以被看作是并行执行实体的屏障。在每个superstep结束时,每个worker将其刷新到持久存储。
- 该算法在每个SuperStep的末尾进行检查指向,以便在出现故障的情况下,当新节点必须接管发生故障的对等方的功能时,它有一个从头开始的点。 Pregel保证,由于节点的数据在SuperStep启动之前已经刷新到磁盘,因此它可以从该点开始可靠地启动。
- 它也以某种方式表示算法的“进展”。预胶凝体算法/作业可以提供“最大超级步数”,之后该算法应该终止。
你在你的问题中指定什么(约superisors发送工人计算功能,并等待“完成”)绝对可以实现的(虽然我不认为与OTP打包当前的超级能做到这样的东西出来的盒子),但我想SuperStep的概念只是Pregel模型的一个要求。另一方面,如果你正在实现类似于平行映射器的东西(就像乔在他的书中实现的那样),你不需要超级步骤/
嘿马丁..我无法回复你的评论在我的博客出于某种原因。 –
嘿,阿伦......我会等你的博客上的回复。 – skanatek
请删除phoebus文件夹并重新从git中重新使用它。确保你已经下载了rebar可执行文件,并且可以在你的PATH中找到它。 “生成”应该起作用 –