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()
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()