Pregel BSP:分区和用户输入由主机分配给worker之间的区别



预凝胶论文提到:

a) Pregel库将图划分为分区,每个分区由一组顶点和所有这些顶点的外向边…Master决定图将有多少分区,并进行分配

b) 主进程将用户输入的一部分分配给每个worker进程。的输入被视为一组记录,每个记录包含一个任意数量的顶点和边。输入的划分为正交于图本身的划分,并且是典型的.

我有两个问题:

1)在b)中,主服务器如何将"用户输入的一部分分配给每个worker"与"将一个或多个分区分配给每个worker"不同。它们有不同的功能吗?我认为我们必须找出我们的分区,然后将一个或多个分区提供给工作机器,这就是全部。我错过了什么?

2)如果输入的划分仅仅基于文件边界,这是否意味着一个分区的顶点可以驻留在不同的机器上?(因为分区的两个顶点可能驻留在不同的文件上,因此由不同的工作机器处理)。

问题1:

将用户输入分配给每个worker与为每个worker分配一个或多个分区是一样的。

用户输入将是一个图形。这个图将被分割成几个分区。这些分区将在工作程序之间进行分割。工作线程是将要处理分区的地方。它们可能包含一个或多个分区。分区包含顶点。实体中的分区选择活动顶点并运行它们的超步计算。

问题2:

。分区内的所有顶点都在同一个worker中。如果一个顶点要被转移到另一台机器(从而另一个工作者),它将改变到另一个分区。

最新更新