def handle(self): global pars global comm global logger data = cPickle.loads(self.request[0]) if isinstance(data, dict): print('{} wrote: {}'.format(self.client_address[0], data)) comm.Barrier() master.process(pars, data) elif isinstance(data, str): if data.strip() == 'ping': logger.pong()
status = MPI.Status int_pars = {'NScrapers': 1, 'NPlacers': 1, 'iters': 2, 'per_page': 10, 'MaxTilesVert': 8, 'fidelity': 1, 'poolSize': 20, 'UsedPenalty': 0, 'useDB' : False} string_pars = {'savepath' : './imgs/'} # update default parameters with given values for i in range(len(sys.argv[:])): name = sys.argv[i] if name in int_pars: int_pars[name] = int(sys.argv[i+1]) #if pars['per_page'] > 500: # pars['per_page'] = 500 # merge the two parameter dicts into a single dict # Keys should be distinct! pars = dict(int_pars.items() + string_pars.items()) assert size == 1+pars['NScrapers']+pars['NPlacers'] if rank == 0: master.process(pars) elif rank < 1+pars['NScrapers']: scraper.process(pars) elif rank < 1+pars['NScrapers']+pars['NPlacers']: placer_obj = placer.MinDistPlacer(pars) placer_obj.process() del placer_obj else: comm.barrier() MPI.Finalize()