How to customize scheduling of vertex program

23 views
Skip to first unread message

Karida Yu Jiang

unread,
Oct 10, 2013, 7:38:32 AM10/10/13
to graph...@googlegroups.com
Hi,

I would like to implement a parallel Gibbs sampling on GraphLab. In order to do so, I would need to "pause" the running of vertex program on some of the vertices, and it runs again until at least one of its neighbors signals him. How do you stop the vertex program from running on the current vertex?

I tried with the following:
-Graph: two vertices, each having an edge pointing to the other.
-At Main: engine.signal(1); // only signal one of the vertex
-At scatter: signal all OUT_EDGES

Then I discover: the vertex program start to run at 1, and since the scatter function signals the OUT_EDGES, the vertex program of vertex 2 runs. However, at this time, vertex 1 also runs its vertex program. What I would like is that only on vertex 2 the program runs. Afterwards, since vertex 2 will signal vertex 1, the program runs on vertex 1 again. It will be like a sequential update between the two vertices.

Another question, I read about the message type, but cannot find an example how to use it. If I want to read the message in apply() function, how should I do that?

Thank you very much.

Karida
Reply all
Reply to author
Forward
0 new messages