Graph Processing & Bulk Synchronous Parallel Model
Graph Processing & Bulk Synchronous Parallel Model
Graph Processing & Bulk Synchronous Parallel Model
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
: public Vertex {<br />
void Compute(MessageIterator* msgs) {<br />
int mindist = IsSource(vertex_id()) ? 0 : INF;<br />
Single Source Shortest Paths <br />
for (; !msgs->Done(); msgs->Next())<br />
mindist = min(mindist, msgs->Value());<br />
if (mindist < GetValue()) {<br />
class ShortestPathVertex *MutableValue() = mindist;<br />
: public Vertex {<br />
All VerFces tional iniFalized edge to can INF be<br />
ad<br />
OutEdgeIterator iter = GetOutEdgeIterator();<br />
void Compute(MessageIterator* msgs) {<br />
implemented a random<br />
for (; !iter.Done(); iter.Next())<br />
int mindist = IsSource(vertex_id()) SendMessageTo(iter.Target(),<br />
? 0 : INF;<br />
and a maximum-weig<br />
for (; !msgs->Done(); msgs->Next())<br />
mindist + iter.GetValue());<br />
describe the former h<br />
mindist = min(mindist, msgs->Value());<br />
if (mindist < GetValue()) {<br />
}<br />
In the Pregel impl<br />
Distance to source <br />
tex value is a tuple o<br />
*MutableValue() = mindist; VoteToHalt();<br />
OutEdgeIterator iter = } GetOutEdgeIterator();<br />
set the vertex is in (L<br />
for (; !iter.Done(); }; iter.Next())<br />
vertex once known.<br />
SendMessageTo(iter.Target(),<br />
carry no information)<br />
mindist + iter.GetValue());<br />
Edge algorithm Weight proceeds in<br />
}<br />
Figure 5: Single-source index shortest is justpaths.<br />
the supe<br />
VoteToHalt();<br />
handshake.<br />
}<br />
};<br />
class MinIntCombiner : public Combiner In phase 0{<br />
of a cy<br />
virtual void Combine(MessageIterator* sends a message msgs) { to ea<br />
int mindist = INF;<br />
and then unconditiona<br />
Figure 5: Single-source for shortest (; !msgs->Done(); paths. msgs->Next()) (because it is already<br />
mindist = min(mindist, msgs->Value());<br />
or if all the message<br />
class MinIntCombiner : public Combiner Output("combined_source", {<br />
mindist); never be reactivated.<br />
virtual void Combine(MessageIterator* }<br />
msgs) {<br />
in two supersteps and<br />
int mindist = INF; };<br />
In phase 1 of a cyc<br />
for (; !msgs->Done(); msgs->Next())<br />
randomly chooses on<br />
mindist = min(mindist, msgs->Value());<br />
Lecture<br />
Output("combined_source",<br />
14 : 590.02 Spring 13 <br />
mindist);<br />
18 message granting tha