Hi all,
I've submitted my proposal to gsoc for HAMA894
<https://issues.apache.org/jira/browse/HAMA894> . I tought I have time
to update proposal till 18th April. After the submission of my proposal,
these are things what I did:
Figured out, if I want to add new algorithm to run every vertex, my
class needs to be extended from Vertex class and implement compute
method. Also VertexInputReader class to set vertexID and edge of vertex.
I read some articles for kcore algorithms [1],[2],[3],[4] and some
others [5], [6]. If we recursively delete all vertices which degree less
than k, the remaining graph is kcore.
My approach is roughly like that:
In superstep 0 every vertex sends its node degree to neighbors. Next
sepersteps if vertex received smaller degree of its degree, it changes
node degree as far as new value and sends it to neighbors. Otherwise
vertex halts (voteToHalt) until new messages are received.
I was able to run correctly 3 supersteps by GraphJob and if I set node
degree arrays right then I think I'm gonna solve the problem.
I think I have to write aggregators to hold max kcore, vertex count for
each kcores, percentage etc.
I wanted to send this email to show that I have improved my proposal and
I have started my implemantation and also made a progress in case I will
not able to edit my proposal.
[1] Fast algorithms for determining (generalized) core groups in social
networks
[2] Distributed k Core Decomposition
[3] An O(m) Algorithm for Cores Decomposition of Networks
[4] BSP vs MapReduce
[5] HAMA: An Efficient Matrix Computation with the MapReduce Framework
[6] Apache Hama Programming
