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 <zhouyi0...@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? >