From c5d580512e7400e54e4caa4ab0922988e6629c7a Mon Sep 17 00:00:00 2001 From: "a.ott" Date: Thu, 4 Jun 2020 17:13:09 +0200 Subject: [PATCH] tried to make parrallel fitting not need more and more ram --- run_Fitter.py | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/run_Fitter.py b/run_Fitter.py index 56d0988..ba8037f 100644 --- a/run_Fitter.py +++ b/run_Fitter.py @@ -49,16 +49,14 @@ def fit_cell_base(parameter): "\n error: {:.2f}".format(sum(error))) -def fit_all_cells_parallel_sync(cells, start_parameters, results_base_folder): +def fit_all_cells_parallel_sync(cells, start_parameters, thread_pool, results_base_folder): parameter = [] for cell in cells: for i, s_pars in enumerate(start_parameters): parameter.append((cell, i, s_pars, results_base_folder)) - core_count = mp.cpu_count() - pool = mp.Pool(core_count - 1) time1 = time.time() - pool.map(fit_cell_base, parameter) + thread_pool.map(fit_cell_base, parameter) time2 = time.time() print("Time taken for all cells and start parameters ({:}): {:.2f}s".format(len(parameter), time2 - time1)) @@ -273,17 +271,29 @@ def save_fitting_run_info(cell_data, parameters, start_parameters, plot=False, s def test_effect_of_refractory_period(): - ref_periods = np.arange(0.0006, 0.001, 0.0015) + ref_periods = [0.0006, 0.001, 0.0015] + counter = 0 + core_count = mp.cpu_count() + pool = mp.Pool(core_count - 1) + for cell in icelldata_of_dir("./data/"): + counter += 1 + if counter < 10: + continue + elif counter >= 14: + return + start_parameters_base = [p for p in iget_start_parameters()] + for ref_period in ref_periods: + print(cell.get_data_path()) + print("ref period: {:.4f}".format(ref_period)) + results_base_folder = "./test_routines/ref_period_{:.4f}/".format(ref_period) + all_start_parameters = copy.deepcopy(start_parameters_base) + + for par_set in all_start_parameters: + par_set["refractory_period"] = ref_period + fit_all_cells_parallel_sync([cell], all_start_parameters, pool, results_base_folder) - cells = [c for c in icelldata_of_dir("./data/")] - start_parameters_base = [p for p in iget_start_parameters()] - for ref_period in ref_periods: - results_base_folder = "./test_routines/ref_period_{:.3f}/".format(ref_period) - all_start_parameters = copy.deepcopy(start_parameters_base) + del cell - for par_set in all_start_parameters: - par_set["refractory_period"] = ref_period - fit_all_cells_parallel_sync(cells, all_start_parameters, results_base_folder) if __name__ == '__main__': main()