Package org.apache.hama.bsp

Examples of org.apache.hama.bsp.IntegerMessage


    InetSocketAddress peer = new InetSocketAddress(
        BSPNetUtils.getCanonicalHostname(), BSPNetUtils.getFreePort());
    messageManager.init(conf, peer);
    String peerName = peer.getHostName() + ":" + peer.getPort();

    messageManager.send(peerName, new IntegerMessage("test", 1337));

    Iterator<Entry<InetSocketAddress, LinkedList<BSPMessage>>> messageIterator = messageManager
        .getMessageIterator();

    Entry<InetSocketAddress, LinkedList<BSPMessage>> entry = messageIterator
        .next();

    assertEquals(entry.getKey(), peer);

    assertTrue(entry.getValue().size() == 1);

    BSPMessageBundle bundle = new BSPMessageBundle();
    for (BSPMessage msg : entry.getValue()) {
      bundle.addMessage(msg);
    }

    messageManager.transfer(peer, bundle);
   
    messageManager.clearOutgoingQueues();

    assertTrue(messageManager.getNumCurrentMessages() == 1);
    BSPMessage currentMessage = messageManager.getCurrentMessage();

    assertTrue(currentMessage instanceof IntegerMessage);

    IntegerMessage rec = (IntegerMessage) currentMessage;

    assertEquals(rec.getTag(), "test");
    assertEquals(rec.getData(), Integer.valueOf(1337));

  }
View Full Code Here


  public void bsp(BSPPeer<NullWritable, NullWritable, IntWritable, Text> bspPeer)
      throws IOException, SyncException, InterruptedException {

    for (int i = 0; i < NUM_SUPERSTEPS; i++) {
      for (String otherPeer : bspPeer.getAllPeerNames()) {
        bspPeer.send(otherPeer, new IntegerMessage(bspPeer.getPeerName(), i));
      }
      bspPeer.sync();
      IntegerMessage msg = null;
      while ((msg = (IntegerMessage) bspPeer.getCurrentMessage()) != null) {
        bspPeer.write(new IntWritable(msg.getData()), new Text(msg.getTag()));
      }
    }
  }
View Full Code Here

    @Override
    public void bsp(BSPPeer<NullWritable, NullWritable, Text, IntWritable> peer)
        throws IOException, SyncException, InterruptedException {
      for (String peerName : peer.getAllPeerNames()) {
        peer.send(peerName, new IntegerMessage(peer.getPeerName(), 1));
        peer.send(peerName, new IntegerMessage(peer.getPeerName(), 2));
        peer.send(peerName, new IntegerMessage(peer.getPeerName(), 3));
      }
      peer.sync();

      IntegerMessage received;
      while ((received = (IntegerMessage) peer.getCurrentMessage()) != null) {
        peer.write(new Text(received.getTag()),
            new IntWritable(received.getData()));
      }
    }
View Full Code Here

      Iterator<BSPMessage> it = messages.iterator();
      while (it.hasNext()) {
        sum += ((IntegerMessage) it.next()).getData();
      }

      bundle.addMessage(new IntegerMessage("Sum = ", sum));
      return bundle;
    }
View Full Code Here

    boolean updated = true;
    while (updated) {
      int updatesMade = 0;
      peer.sync();

      IntegerMessage msg = null;
      Deque<ShortestPathVertex> updatedQueue = new LinkedList<ShortestPathVertex>();
      while ((msg = (IntegerMessage) peer.getCurrentMessage()) != null) {
        ShortestPathVertex vertex = vertexLookupMap.get(msg.getTag());
        // check if we need an distance update
        if (vertex.getCost() > msg.getData()) {
          updatesMade++;
          updatedQueue.add(vertex);
          vertex.setCost(msg.getData());
        }
      }
      // synchonize with all grooms if there were updates
      updated = broadcastUpdatesMade(peer, master, updatesMade);
      // send updates to the adjacents of the updated vertices
View Full Code Here

   * @throws KeeperException
   * @throws InterruptedException
   */
  private boolean broadcastUpdatesMade(BSPPeerProtocol peer, String master,
      int updates) throws IOException, KeeperException, InterruptedException {
    peer.send(master, new IntegerMessage(peer.getPeerName(), updates));
    peer.sync();
    if (peer.getPeerName().equals(master)) {
      int count = 0;
      IntegerMessage message;
      while ((message = (IntegerMessage) peer.getCurrentMessage()) != null) {
        count += message.getData();
        LOG.info("Received " + message.getData() + " updates from "
            + message.getTag() + " in SuperStep " + peer.getSuperstepCount());
      }

      for (String name : peer.getAllPeerNames()) {
        peer.send(name, new BooleanMessage("", count > 0 ? true : false));
      }
    }

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

  private void sendMessageToNeighbors(BSPPeerProtocol peer,
      ShortestPathVertex id) throws IOException {
    List<ShortestPathVertex> outgoingEdges = adjacencyList.get(id);
    for (ShortestPathVertex adjacent : outgoingEdges) {
      int mod = Math.abs((adjacent.getId() % peer.getAllPeerNames().length));
      peer.send(peerNames[mod], new IntegerMessage(adjacent.getName(), id
          .getCost() == Integer.MAX_VALUE ? id.getCost() : id.getCost()
          + adjacent.getWeight()));
    }
  }
View Full Code Here

TOP

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

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.