flink-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vasiliki Kalavri <vasilikikala...@gmail.com>
Subject Re: [Gelly] question about vertex-centric Iteration
Date Sat, 11 Apr 2015 18:40:05 GMT
Hi,

you can actually implement each of the algorithm phases in a separate
superstep.

Inside the VertexUpdateFunction and the MessagingFunction, you can easily
check in which superstep you are by calling the "getSuperstepNumber()"
method. For example, if the superstep number is odd, you execute phase (1)
and if the superstep number is even, you execute phase (2).

Regarding edge values, you cannot update them inside a vertex-centric
iteration. If you need to propagate or update edge values, you can emulate
this by either sending them as messages or storing them in the vertex value.

Let us know if you have further questions!

Cheers,
-Vasia.


On 11 April 2015 at 19:01, Yi ZHOU <zhouyi0922@hotmail.com> wrote:

> Hello,
>
> In vertex-centric Iteration, in each iteration, the vertices sends and
> recieves messages once.
> However, to implement Affinity Propogation algortihm, I need to update
> responsibility and availability in one iteration(superstep):
> 1, each vertex send and recieves messages from neigbor vertices to update
> the responsibility.
> 2, each vertex sends and recieves messages from neigbor vertices to update
> the availability.
>
> That means, I need to send->update->send->update in each super step. How
> can i achieve this ?  Does any have some suggestions?
> Also, I saw the setNewVertexValue() in VertexUpdater , can I update the
> value of adjacent edges in VertexUpdater?
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message