INNER CODE UNIT · Python
create_workers_and_execute
erikbern/ann-benchmarks · ann_benchmarks/main.py:229
def create_workers_and_execute(definitions: List[Definition], args: argparse.Namespace):
"""
Manages the creation, execution, and termination of worker processes based on provided arguments.
Args:
definitions (List[Definition]): List of algorithm definitions to be processed.
args (argparse.Namespace): User provided arguments for running workers.
Raises:
Exception: If the level of parallelism exceeds the available CPU count or if batch mode is on with more than
one worker.
"""
cpu_count = multiprocessing.cpu_count()
if args.parallelism > cpu_count - 1:
raise Exception(f"Parallelism larger than {cpu_count - 1}! (CPU count minus one)")
if args.batch and args.parallelism > 1:
raise Exception(