incubator-giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Harsh J (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (GIRAPH-137) De-duplicate pagerank implementation in PageRankBenchmark
Date Fri, 03 Feb 2012 14:15:53 GMT

     [ https://issues.apache.org/jira/browse/GIRAPH-137?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Harsh J updated GIRAPH-137:
---------------------------

    Attachment: GIRAPH-137.patch

Subclassing having proven tricky to do (seems like a multiple inheritance situation?) I've
tried to reuse via a static function. Is this OK or plain silly?
                
> De-duplicate pagerank implementation in PageRankBenchmark
> ---------------------------------------------------------
>
>                 Key: GIRAPH-137
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-137
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Jakob Homan
>            Priority: Minor
>              Labels: newbie
>         Attachments: GIRAPH-137.patch
>
>
> Currently in PageRankBenchmark we have the code for pagerank duplicated in each of the
implementations of Vertex:
> {noformat}    public static class PageRankHashMapVertex extends HashMapVertex<
>             LongWritable, DoubleWritable, DoubleWritable, DoubleWritable> {
>         @Override
>         public void compute(Iterator<DoubleWritable> msgIterator) {
>             if (getSuperstep() >= 1) {
>                 double sum = 0;
>                 while (msgIterator.hasNext()) {
>                     sum += msgIterator.next().get();
>                 }
>                 DoubleWritable vertexValue =
>                     new DoubleWritable((0.15f / getNumVertices()) + 0.85f *
>                                        sum);
>                 setVertexValue(vertexValue);
>             }
>             if (getSuperstep() < getConf().getInt(SUPERSTEP_COUNT, -1)) {
>                 long edges = getNumOutEdges();
>                 sendMsgToAllEdges(
>                     new DoubleWritable(getVertexValue().get() / edges));
>             } else {
>                 voteToHalt();
>             }
>         }
>     }
>     public static class PageRankEdgeListVertex extends EdgeListVertex<
>             LongWritable, DoubleWritable, DoubleWritable, DoubleWritable> {
>         @Override
>         public void compute(Iterator<DoubleWritable> msgIterator) {
>             if (getSuperstep() >= 1) {
>                 double sum = 0;
>                 while (msgIterator.hasNext()) {
>                     sum += msgIterator.next().get();
>                 }
>                 DoubleWritable vertexValue =
>                     new DoubleWritable((0.15f / getNumVertices()) + 0.85f *
>                                        sum);
>                 setVertexValue(vertexValue);
>             }
>             if (getSuperstep() < getConf().getInt(SUPERSTEP_COUNT, -1)) {
>                 long edges = getNumOutEdges();
>                 sendMsgToAllEdges(
>                         new DoubleWritable(getVertexValue().get() / edges));
>             } else {
>                 voteToHalt();
>             }
>         }
>     }{noformat}
> This code can be consolidated into private class and the two implementations just extend
that.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message