Source code for mpas_tools.parallel

import multiprocessing

[docs]def create_pool(process_count=None, method='forkserver'): """ Crate a pool for creating masks with Python multiprocessing. This should be called only once at the beginning of the script performing cell culling. ``pool.terminate()`` should be called before exiting the script. Parameters ---------- process_count : int, optional The number of processors or None to use all available processors method : {'fork', 'spawn', 'forkserver'} The mutiprocessing method Returns ------- pool : multiprocessing.Pool A pool to use for python-based mask creation. """ pool = None multiprocessing.set_start_method(method) if process_count is None: process_count = multiprocessing.cpu_count() else: process_count = min(process_count, multiprocessing.cpu_count()) if process_count > 1: pool = multiprocessing.Pool(process_count) return pool