def do_experiments(self, config_list, dirname=None, pool=gu.NoDaemonPool, do_multiprocessing=True): dirname = dirname or self.storage_accessor.dirname_prefix runner = self.runner writer = self.storage_accessor.writer with gu.Timer('experiments') as timer: mapper_kwargs = dict(Pool=pool, do_multiprocessing=do_multiprocessing) with gu.MapperContext(**mapper_kwargs) as mapper: # use non-daemonic mapper since runner can spawn daemonic processes eu.do_experiments(config_list, runner, writer, dirname, mapper) pass pass self.append(dirname) return self.frame
dirname_1 = _dirname + '_1' dirname_2 = _dirname + '_2' dirname_prefix = 'test_log_likelihood' # demonstrate constructing empty ExperimentRunner er = ExperimentRunner(runner, dirname_prefix=dirname_prefix) print er.frame print er.do_experiments(config_list_0, dirname_0) # demonstrate StoargeAccessor sa = StorageAccessor(dirname_prefix=dirname_prefix) with gu.Timer('experiments') as timer: with gu.MapperContext(Pool=gu.NoDaemonPool) as mapper: # use non-daemonic mapper since run_geweke spawns daemonic processes eu.do_experiments(config_list_1, runner, sa.writer, dirname_1, mapper) pass pass frame = sa.read_summary_frame([dirname_0, dirname_1]) # demonstrate ExperimentRunner er = ExperimentRunner(runner, dirnames=[dirname_0, dirname_1], dirname_prefix=dirname_prefix) print er.frame print er.do_experiments(config_list_2, dirname_2) # demonstrate getting result _id = er.id_to_dir.keys()[0] result = er._get_result(_id) print print result