Hello,
I am really new to Giraph and recently configured okapi[1] to try out
semiclustering algorithm. I wanted to understand how semi-clustering works
in practice because I was not able to properly visualize how the algorithm
worked.
For this, I added a few print statements in SemiClustering.java file and
ran the SemiClusteringTest.java file.
Now for example in superstep 0, vertex 5,4 and 3 have the following vertex
value
Vertex(id=5,value=[ 5 | 0.0, 0.0, 2.0 ] ,#edges=2)
Vertex(id=4,value=[ 4 | 0.0, 0.0, 3.0 ] ,#edges=2)
Vertex(id=3,value=[ 3 | 0.0, 0.0, 6.0 ] ,#edges=4)
Now, vertex 4 and 3 send there messages to vertex 5 (because it is
connected to them). According to my understanding (developed through Google
Pregel paper), Vertex 5 should receive the following messages in superstep 1
Message from neighbour 3: [ 3 | 0.0, 0.0, 6.0 ]
Message from neighbour 4: [ 4 | 0.0, 0.0, 3.0 ]
but instead of this, it receives
*Message #1*: [ 5 | 0.0, 0.0, 2.0 ] [ 2 | 0.0, 0.0, 3.0 ] [ 1 | 0.0,
0.0, 2.0 ] [ 3 | 0.0, 0.0, 6.0 ]
*Message #2*: [ 5 | 0.0, 0.0, 2.0 ] [ 2 | 0.0, 0.0, 3.0 ] [ 1 | 0.0,
0.0, 2.0 ] [ 3 | 0.0, 0.0, 6.0 ] [ 5 | 0.0, 0.0, 2.0 ] [ 1 | 0.0, 0.0,
2.0 ] [ 4 | 0.0, 0.0, 3.0 ]
I am unable to understand the messages that were received in superstep 1
for vertex 5. Surely, my understanding seems to be wrong. Can somebody
explain me the above ?
[1] - https://github.com/grafos-ml/okapi
Thanks,,
Behroz Sikander
|