Skip to content

Commit

Permalink
fix: skip calculation for converged nodes
Browse files Browse the repository at this point in the history
Signed-off-by: Frankzhaopku <[email protected]>
  • Loading branch information
frank-zsy committed Mar 31, 2022
1 parent b81fbc6 commit 9ae9f91
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/main/java/gds/openrank/OpenRankPregel.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.neo4j.gds.annotation.Configuration;
import org.neo4j.gds.annotation.ValueClass;
import org.neo4j.gds.core.CypherMapWrapper;

import org.neo4j.gds.api.nodeproperties.ValueType;
import org.neo4j.gds.beta.pregel.Messages;
import org.neo4j.gds.beta.pregel.PregelComputation;
Expand Down Expand Up @@ -79,8 +78,8 @@ public void init(InitContext<OpenRankPregelConfig> context) {
public void compute(ComputeContext<OpenRankPregelConfig> context, Messages messages) {
var initValueDouble = context.doubleNodeValue(initValue);
var oldRank = context.doubleNodeValue(openRank);

if (!context.isInitialSuperstep()) {
// skip calculation for converged nodes
if (!context.isInitialSuperstep() && context.longNodeValue(converged) == 0l) {
var sum = 0d;
for (var message : messages) {
sum += message;
Expand All @@ -89,12 +88,12 @@ public void compute(ComputeContext<OpenRankPregelConfig> context, Messages messa
var retentionFactor = context.doubleNodeValue(rententionFactor);
var newRank = retentionFactor * initValueDouble + (1 - retentionFactor) * sum;

// set new value and convergence state
context.setNodeValue(openRank, newRank);
if (Math.abs(newRank - oldRank) < this.tolerance) {
context.setNodeValue(converged, 1l);
}
}

context.sendToNeighbors(context.doubleNodeValue(openRank));
}

Expand Down

0 comments on commit 9ae9f91

Please sign in to comment.