Loading processing.py +20 −1 Original line number Diff line number Diff line Loading @@ -196,12 +196,31 @@ def run_parallel(nproc, jobs, clean=True): :param clean: bool, whether to delete residual files (to save disk space) or not (for debugging purposes) """ import random jobs = filter_completed(jobs) with ProcessPoolExecutor(nproc) as executor: executor.map(run_gromacs, random.sample(jobs, k=len(jobs))) if clean: cleanup(jobs) def filter_completed(jobs): completed = [] for n, job in enumerate(jobs): structs_list, dyn_mdp, traj, gmx, alch = job m = traj.mod traj_alias = traj.ordering folder_name = '/'.join(m.topname.split('/')[:-1]) os.chdir(folder_name) if '{tn}-dhdl.xvg'.format(tn=traj_alias) not in os.listdir(folder_name): completed.append(n) print("in mod {fname} skipping trajectory {tn}, already calculated".format(fname=folder_name, tn=traj_alias)) completed.sort(reverse=True) for i in completed: jobs.pop(i) return jobs def read_quantity(): """ reads w_binsorter output Loading Loading
processing.py +20 −1 Original line number Diff line number Diff line Loading @@ -196,12 +196,31 @@ def run_parallel(nproc, jobs, clean=True): :param clean: bool, whether to delete residual files (to save disk space) or not (for debugging purposes) """ import random jobs = filter_completed(jobs) with ProcessPoolExecutor(nproc) as executor: executor.map(run_gromacs, random.sample(jobs, k=len(jobs))) if clean: cleanup(jobs) def filter_completed(jobs): completed = [] for n, job in enumerate(jobs): structs_list, dyn_mdp, traj, gmx, alch = job m = traj.mod traj_alias = traj.ordering folder_name = '/'.join(m.topname.split('/')[:-1]) os.chdir(folder_name) if '{tn}-dhdl.xvg'.format(tn=traj_alias) not in os.listdir(folder_name): completed.append(n) print("in mod {fname} skipping trajectory {tn}, already calculated".format(fname=folder_name, tn=traj_alias)) completed.sort(reverse=True) for i in completed: jobs.pop(i) return jobs def read_quantity(): """ reads w_binsorter output Loading