Hi Nick,

I think you are running into the issue that vertex
activation/scheduling and data transfer are not separated in the
Pregel/Giraph model. I ran into the same problem when trying to
implement Adaptive PageRank on Giraph.

I think the problem comes from the vast generality of Pregel's BSP
model: vertices can send any kind of message to any other vertex.
However, in a lot of algorithms, vertices only send their state to
their neighbors. Other platforms such as GraphLab separate
activation/scheduling from messaging, in this system a vertex can only
schedule its neighbors and once one of the neighbors is invoked, it
can read the state of its direct neighbors.

I think that the Pregel model is simply not suited for such algorithms
(unfortunately), let me know if you find a clever workaround.

Best,
Sebastian


2012/8/3 Nick West <nick.w...@benchmarksolutions.com>
>
> Thanks for the reply.
>
> Is there an easy modification that I can make to remove condition 2?  Can you 
> point me to the code that addresses this?
>
> The problem I am facing is the following:  At every iteration a non-halted 
> vertex needs messages from all of its neighbors.  When deciding to send 
> messages, a given vertex doesn't know if its neighbors will vote-to-halt in 
> the current superstep, thus it must send a message to each of its neighbors.  
> In the case that all vertices have voted to stop, the sending of a messages 
> by any vertex will cause the algorithm to continue, yet in this situation it 
> is desirable to terminate.
>
> I have worked out a few solutions that involve either increasing the amount 
> of data a vertex saves each iteration or augmenting the messages sent with 
> additional information, but I think it would be beneficial, and more general, 
> to allow this type of termination instead.
>
> Do you have any thoughts on this?
>
> Thanks,
> Nick
>
>
> On Aug 3, 2012, at 10:14 AM, Alessandro Presta wrote:
>
> Hi Nick,
>
> You are pretty much correct, except that not all vertices need to vote to 
> halt at the same time: some vertices might have voted to halt at a previous 
> superstep and never received any messages after then, in which case they are 
> never reactivated.
>
> In other words, I think you can rephrase that as:
>
> All vertices are halted after a given superstep
> No messages were sent in that superstep
>
> Hope it helps.
>
> Alessandro
>
> From: Nick West <nick.w...@benchmarksolutions.com>
> Reply-To: "user@giraph.apache.org" <user@giraph.apache.org>
> Date: Friday, August 3, 2012 2:48 PM
> To: "user@giraph.apache.org" <user@giraph.apache.org>
> Subject: Termination Conditions
>
> Excuse me if this is stated somewhere obvious, but I haven't been unable to 
> find it.  What are the exact termination criteria for the global algorithm?
>
> Reading the documentation on voteToHalt, looking at the Shortest Path Example 
> code, and looking at the results of my own application, these two conditions 
> must both hold for the global BSP algorithm to terminate:
>
> 1) All vertices vote to halt in a given superstep
> 2) No messages are sent in that supersetp
>
> Is that correct?
>
> Thanks,
> Nick West
>
> Benchmark Solutions
> 101 Park Avenue - 7th Floor
> New York, NY 10178
> Tel +1.212.220.4739 | Mobile +1.646.267.4324
> www.benchmarksolutions.com
> <image001.png>
>
>
>
>
> <image001.png>
>
>
>
> Nick West
>
> Benchmark Solutions
> 101 Park Avenue - 7th Floor
> New York, NY 10178
> Tel +1.212.220.4739 | Mobile +1.646.267.4324
> www.benchmarksolutions.com
>
>
>
>
>

Reply via email to