mcframework.backends.ThreadBackend#
- class mcframework.backends.ThreadBackend[source]#
Bases:
objectThread-based parallel execution backend.
Uses
concurrent.futures.ThreadPoolExecutorfor parallel execution. Effective when NumPy releases the GIL (most numerical operations).- Parameters:
Examples
>>> backend = ThreadBackend(n_workers=4) >>> results = backend.run(sim, n_simulations=100000, seed_seq=seed_seq, progress_callback=None)
Methods
Run simulations in parallel using threads.
- run(sim: MonteCarloSimulation, n_simulations: int, seed_seq: np.random.SeedSequence | None, progress_callback: Callable[[int, int], None] | None, **simulation_kwargs: Any) np.ndarray[source]#
Run simulations in parallel using threads.
- Parameters:
- sim
MonteCarloSimulation The simulation instance to run.
- n_simulations
int Number of simulation draws to perform.
- seed_seq
SeedSequenceorNone Seed sequence for spawning independent RNG streams per chunk.
- progress_callback
callable()orNone Optional callback
f(completed, total)for progress reporting.- **simulation_kwargs
Any Additional keyword arguments passed to
single_simulation.
- sim
- Returns:
np.ndarrayArray of simulation results with shape
(n_simulations,).
- classmethod __new__(*args, **kwargs)#