import multiprocessing def run_plot_task(task): """Execute a single plotting task. Parameters ---------- task : tuple A tuple of (function, args_tuple) where function is a callable plotting function and args_tuple contains its arguments. """ func, args = task return func(*args) def run_plot_tasks_parallel(plot_tasks): """Execute a list of independent plotting tasks in parallel. Uses the 'fork' context to create worker processes so that the main script is NOT re-imported/re-executed in child processes. Parameters ---------- plot_tasks : list of tuples Each element is (function, args_tuple). """ ctx = multiprocessing.get_context('fork') with ctx.Pool() as pool: pool.map(run_plot_task, plot_tasks)