Execute all simulations in an experiment, optionally in parallel.
Source code in packages/gds-sim/gds_sim/parallel.py
| def execute_experiment(experiment: Experiment) -> Results:
"""Execute all simulations in an experiment, optionally in parallel."""
all_results: list[Results] = []
for sim in experiment.simulations:
n_subsets = len(sim.model._param_subsets)
total_jobs = n_subsets * sim.runs
if total_jobs <= 1 or experiment.processes == 1:
all_results.append(execute_simulation(sim))
else:
all_results.append(_parallel_simulation(sim, experiment.processes))
return Results.merge(all_results)
|