Package org.apache.hama.bsp

Examples of org.apache.hama.bsp.DoubleMessage


      if (iteration >= 1) {
        // copy the old pagerank to the backup
        copyTentativePageRankToBackup();
        // sum up all incoming messages for a vertex
        HashMap<VertexWritable, Double> sumMap = new HashMap<VertexWritable, Double>();
        DoubleMessage msg = null;
        while ((msg = (DoubleMessage) peer.getCurrentMessage()) != null) {
          VertexWritable k = vertexLookupMap.get(msg.getTag());
          if (k == null) {
            LOG.fatal("If you see this, partitioning has totally failed.");
          }
          if (!sumMap.containsKey(k)) {
            sumMap.put(k, msg.getData());
          } else {
            sumMap.put(k, msg.getData() + sumMap.get(k));
          }
        }
        // pregel formula:
        // ALPHA = (1-DAMPING_FACTOR) / NumVertices()
        // P(i) = ALPHA + DAMPING_FACTOR * sum
 
View Full Code Here


  }

  private final double broadcastError(
      BSPPeer<VertexWritable, VertexArrayWritable, Text, DoubleWritable> peer,
      double error) throws IOException, SyncException, InterruptedException {
    peer.send(MASTER_TASK_NAME, new DoubleMessage("", error));
    peer.sync();
    if (peer.getPeerName().equals(MASTER_TASK_NAME)) {
      double errorSum = 0.0;
      int count = 0;
      DoubleMessage message;
      while ((message = (DoubleMessage) peer.getCurrentMessage()) != null) {
        errorSum += message.getData();
        count++;
      }
      double avgError = errorSum / (double) count;
      // LOG.info("Average error: " + avgError);
      for (String name : peer.getAllPeerNames()) {
        peer.send(name, new DoubleMessage("", avgError));
      }
    }

    peer.sync();
    DoubleMessage message = (DoubleMessage) peer.getCurrentMessage();
    return message.getData();
  }
View Full Code Here

    VertexWritable[] outgoingEdges = adjacencyList.get(v);
    for (VertexWritable adjacent : outgoingEdges) {
      int mod = Math.abs(adjacent.hashCode() % peer.getNumPeers());
      // send a message of the tentative pagerank divided by the size of
      // the outgoing edges to all adjacents
      peer.send(peer.getPeerName(mod), new DoubleMessage(adjacent.getName(),
          tentativePagerank.get(v) / outgoingEdges.length));
    }
  }
View Full Code Here

          out++;
        }
      }

      double data = 4.0 * (double) in / (double) iterations;
      DoubleMessage estimate = new DoubleMessage(peer.getPeerName(), data);

      peer.send(masterTask, estimate);
      peer.sync();
    }
View Full Code Here

        BSPPeer<NullWritable, NullWritable, Text, DoubleWritable> peer)
        throws IOException {
      if (peer.getPeerName().equals(masterTask)) {
        double pi = 0.0;
        int numPeers = peer.getNumCurrentMessages();
        DoubleMessage received;
        while ((received = (DoubleMessage) peer.getCurrentMessage()) != null) {
          pi += received.getData();
        }

        pi = pi / numPeers;
        peer
            .write(new Text("Estimated value of PI is"), new DoubleWritable(pi));
View Full Code Here

      if (iteration >= 1) {
        // copy the old pagerank to the backup
        copyTentativePageRankToBackup();
        // sum up all incoming messages for a vertex
        HashMap<PageRankVertex, Double> sumMap = new HashMap<PageRankVertex, Double>();
        DoubleMessage msg = null;
        while ((msg = (DoubleMessage) peer.getCurrentMessage()) != null) {
          PageRankVertex k = lookupMap.get(msg.getTag());
          if (!sumMap.containsKey(k)) {
            sumMap.put(k, msg.getData());
          } else {
            sumMap.put(k, msg.getData() + sumMap.get(k));
          }
        }
        // pregel formula:
        // ALPHA = 0.15 / NumVertices()
        // P(i) = ALPHA + 0.85 * sum
 
View Full Code Here

    LOG.info("Finished with iteration " + iteration + "!");
  }

  private double broadcastError(BSPPeerProtocol peer, String master,
      double error) throws IOException, KeeperException, InterruptedException {
    peer.send(master, new DoubleMessage("", error));
    peer.sync();
    if (peer.getPeerName().equals(master)) {
      double errorSum = 0.0;
      int count = 0;
      DoubleMessage message;
      while ((message = (DoubleMessage) peer.getCurrentMessage()) != null) {
        errorSum += message.getData();
        count++;
      }
      double avgError = errorSum / (double) count;
      // LOG.info("Average error: " + avgError);
      for (String name : peer.getAllPeerNames()) {
        peer.send(name, new DoubleMessage("", avgError));
      }
    }

    peer.sync();
    DoubleMessage message = (DoubleMessage) peer.getCurrentMessage();
    return message.getData();
  }
View Full Code Here

    List<PageRankVertex> outgoingEdges = adjacencyList.get(v);
    for (PageRankVertex adjacent : outgoingEdges) {
      int mod = Math.abs(adjacent.getId() % peerNames.length);
      // send a message of the tentative pagerank divided by the size of
      // the outgoing edges to all adjacents
      peer.send(peerNames[mod], new DoubleMessage(adjacent.getUrl(),
          tentativePagerank.get(v) / outgoingEdges.size()));
    }
  }
View Full Code Here

          out++;
        }
      }

      double data = 4.0 * (double) in / (double) iterations;
      DoubleMessage estimate = new DoubleMessage(bspPeer.getPeerName(), data);

      bspPeer.send(masterTask, estimate);
      bspPeer.sync();

      if (bspPeer.getPeerName().equals(masterTask)) {
        double pi = 0.0;
        int numPeers = bspPeer.getNumCurrentMessages();
        DoubleMessage received;
        while ((received = (DoubleMessage) bspPeer.getCurrentMessage()) != null) {
          pi += received.getData();
        }

        pi = pi / numPeers;
        writeResult(pi);
      }
View Full Code Here

TOP

Related Classes of org.apache.hama.bsp.DoubleMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.