Exemple #1
0
 def sendInitialTaskToSlaves(self):
     tasks = initTasks.genInitalTasks(self.graph, self.p, self.m)
     log.info(str(len(tasks)) + " initial tasks created")
     for t in tasks:
         slaveIndex = randint(0, len(self.aliveSlaves) - 1)
         slaveServer = self.aliveSlaves[slaveIndex]
         message = PUSHTASK + MESSAGE_DELIMITER + t.toNetString()
         network.sendToIP(slaveServer.IP, slaveServer.port, message)
         log.info("Initial task sent to server " + slaveServer.ID)
Exemple #2
0
 def sendInitialTaskToSlaves(self):
     tasks = initTasks.genInitalTasks(self.graph, self.p, self.m)
     log.info(str(len(tasks)) + " initial tasks created")
     for t in tasks:
         slaveIndex = randint(0, len(self.aliveSlaves)-1)
         slaveServer = self.aliveSlaves[slaveIndex]
         message = PUSHTASK + MESSAGE_DELIMITER + t.toNetString()
         network.sendToIP(slaveServer.IP, slaveServer.port, message)
         log.info("Initial task sent to server " + slaveServer.ID)
Exemple #3
0
 def sendJobCompletionNotiToMaster(self):
     masterServer = filter(lambda s : s.role=='master' and s.alive, self.servers)[0]
     endTime = time.time()
     stats.timeTaken = endTime - self.startTime
     network.sendToIP(masterServer.IP, masterServer.port,
         JOBCOMPLETE + MESSAGE_DELIMITER + stats.toNetString())
     log.info("Job completion notification sent")
     # Clean bloom filter and wait for next input
     BloomHashFilter.clean()
Exemple #4
0
 def sendJobCompletionNotiToMaster(self):
     masterServer = filter(lambda s: s.role == 'master' and s.alive,
                           self.servers)[0]
     endTime = time.time()
     stats.timeTaken = endTime - self.startTime
     network.sendToIP(masterServer.IP, masterServer.port,
                      JOBCOMPLETE + MESSAGE_DELIMITER + stats.toNetString())
     log.info("Job completion notification sent")
     # Clean bloom filter and wait for next input
     BloomHashFilter.clean()
Exemple #5
0
from config.servers import servers
from config.networkParams import MESSAGE_DELIMITER
import src.util.network as network

def readInput():
    '''First line contains two arguments
    n = number of vertices
    m = number of edges in the graph
    next m line conatins (a,b) reresenting an edge.'''
    n, m  = map(int, raw_input().split(" "))
    edges = []
    for i in range(0, m):
        a, b = map(int, raw_input().split(" "))
        edges.append((a, b))
    return n, m, edges

def findMasterIpPort():
    for s in servers :
        if s.role == 'master':
            return s.IP, s.port
    #master not found
    assert False

if __name__ == '__main__':
    n, m, edges = readInput()
    graph = Graph(n, m, edges)
    MasterIP, MasterPort = findMasterIpPort()
    network.sendToIP(MasterIP, MasterPort, "INPUT____________" + MESSAGE_DELIMITER + graph.toString())
    # TODO Wait for computation to end
    # merge all output file if required
Exemple #6
0
 def sendGraphToSlaves(self):
     message = GRAPH + MESSAGE_DELIMITER + self.graph.toString()
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Graph sent to server " + slave.ID)
Exemple #7
0
 def sendNetworkPrime(self):
     message = NETWORKPRIME + MESSAGE_DELIMITER + str(self.p)
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Network prime sent to " + slave.ID)
Exemple #8
0
 def sendProcessStartNotification(self):
     message = STARTPROCESSING
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Start Processing message sent to server " + slave.ID)
Exemple #9
0
 def sendServerListToSlaves(self):
     message = SERVERINFO + MESSAGE_DELIMITER
     message += server.listToNetString(self.servers)
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Server list sent to server " + slave.ID)
Exemple #10
0
 def sendGraphToSlaves(self):
     message = GRAPH + MESSAGE_DELIMITER + self.graph.toString()
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Graph sent to server " + slave.ID)
Exemple #11
0
 def sendNetworkPrime(self):
     message = NETWORKPRIME + MESSAGE_DELIMITER + str(self.p)
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Network prime sent to " + slave.ID)
Exemple #12
0
 def sendProcessStartNotification(self):
     message = STARTPROCESSING
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Start Processing message sent to server " + slave.ID)
Exemple #13
0
 def sendServerListToSlaves(self):
     message = SERVERINFO + MESSAGE_DELIMITER
     message += server.listToNetString(self.servers)
     for slave in self.aliveSlaves:
         network.sendToIP(slave.IP, slave.port, message)
         log.info("Server list sent to server " + slave.ID)
Exemple #14
0
def testHelloWorld(IP, port):
    message = "Hello$world"
    response = network.sendToIP(IP, port, message)
    print 'Hello World Test Passed'
Exemple #15
0
def testHelloWorld(IP, port):
    message = "Hello$world"
    response = network.sendToIP(IP, port, message)
    print 'Hello World Test Passed'