def createWorker(self, id, exp_path, executionMode, devices, modelsPer):
     print("start creating worker" + str(id))
     if executionMode == 'cpu':
         device = None
     else:
         print("device for node", id, "is gpu", id//modelsPer)
         device = devices[id//modelsPer]
     nodeId = str(id)
     w = Worker(nodeId)
     dataScheduler = IntervalDataScheduler()
     dataSource = self.dataSourceFactory.getDataSource(nodeId = id)
     dataScheduler.setDataSource(source = dataSource)
     w.setDataScheduler(dataScheduler)
     comm = RabbitMQComm(hostname = self.messengerHost, port = self.messengerPort, user = '******', password = '******', uniqueId = self._uniqueId)
     os.mkdir(os.path.join(exp_path,"worker" + str(id)))
     commLogger = LearningLogger(path=os.path.join(exp_path,"worker" + str(id)), id="communication", level = 'INFO')
     comm.setLearningLogger(commLogger)
     w.setCommunicator(comm)
     logger = LearningLogger(path=exp_path, id="worker" + str(id), level = 'INFO')
     learner = self.learnerFactory.getLearnerOnDevice(executionMode, device)
     learner.setLearningLogger(logger)
     learner.setStoppingCriterion(self.stoppingCriterion)
     w.setLearner(learner)
     print("create worker " + nodeId + "\n")
     w.run()
示例#2
0
def createWorker(id, exp_path, dataScheduler, learnerFactory):
    nodeId = str(id)
    w = Worker(nodeId)
    w.setDataScheduler(dataScheduler)

    comm = RabbitMQComm(hostname='{mHost}',
                        port='{mPort}',
                        user='******',
                        password='******',
                        uniqueId='{uniqueId}')
    os.mkdir(os.path.join(exp_path, 'worker' + str(id)))
    commLogger = LearningLogger(path=os.path.join(exp_path,
                                                  'worker' + str(id)),
                                id='communication',
                                level='INFO')
    comm.setLearningLogger(commLogger)
    w.setCommunicator(comm)
    logger = LearningLogger(path=exp_path, id='worker' + str(id), level='INFO')

    learner = learnerFactory.getLearner()
    learner.setLearningLogger(logger)

    stoppingCriterion = {stoppingCriterionName}({stoppingCriterionParams})
    learner.setStoppingCriterion(stoppingCriterion)
    w.setLearner(learner)
    print('created worker ' + nodeId + '\\n')
    w.run()
 def createCoordinator(self, exp_path):
     coordinator = Coordinator()
     coordinator.setInitHandler(self.initHandler)
     comm = RabbitMQComm(hostname = self.messengerHost, port = self.messengerPort, user = '******', password = '******', uniqueId = self._uniqueId)
     os.mkdir(os.path.join(exp_path,'coordinator'))
     commLogger = LearningLogger(path=os.path.join(exp_path,'coordinator'), id="communication", level = 'INFO')
     comm.setLearningLogger(commLogger)
     coordinator.setCommunicator(comm)
     self.sync.setAggregator(self.aggregator)
     coordinator.setSynchronizer(self.sync)
     logger = LearningLogger(path=exp_path, id="coordinator", level = 'INFO')
     coordinator.setLearningLogger(logger)
     print("Starting coordinator...\n")
     coordinator.run()
 def createCoordinator(self, exp_path):
     coordinator = Coordinator()
     learner = eval(self.learnerCreator.replace('\\', ''))
     initialParams = learner.getParameters()
     coordinator.setInitialParams(initialParams)
     comm = RabbitMQComm(hostname=self.messengerHost,
                         port=self.messengerPort,
                         user=self.messengerUser,
                         password=self.messengerPassword)
     os.mkdir(os.path.join(exp_path, 'coordinator'))
     commLogger = LearningLogger(path=os.path.join(exp_path, 'coordinator'),
                                 id="communication")
     comm.setLearningLogger(commLogger)
     coordinator.setCommunicator(comm)
     self.sync.setAggregator(self.aggregator)
     coordinator.setSynchronizer(self.sync)
     logger = LearningLogger(path=exp_path,
                             id="coordinator",
                             level='NORMAL')
     coordinator.setLearningLogger(logger)
     print("Starting coordinator...\n")
     coordinator.run()