parallel¶
Multi-threaded functions for parameter sweeps
Functions
ndsweep(factory[, plot, labels, tags, silent]) |
Do a multi-threaded n-dimensional parameter sweep |
parallel_for(factory[, make_result]) |
Multi-threaded loop feed by the factory function |
parallelize([num_threads, queue_size]) |
A decorator which creates factory functions for parallel_for() |
sweep(factory[, plot, labels, tags, silent]) |
Do a multi-threaded parameter sweep |
-
parallel_for(factory, make_result=None)¶ Multi-threaded loop feed by the
factoryfunctionParameters: - factory :
Factory Factory function created with the
parallelize()decorator.- make_result : callable, optional
Creates the final result from raw data. This result is also the final return value of
parallel_for().
Returns: - array_like
A result for each loop iteration.
Examples
@parallelize(x=np.linspace(0, 1, 10)) def factory(x): pb.Model(...) # depends on `x` greens = pb.greens.kpm(model) return greens.deferred_ldos(...) # may also depend on `x` results = parallel_for(factory)
- factory :
-
parallelize(num_threads=num_cores, queue_size=num_cores, **kwargs)¶ A decorator which creates factory functions for
parallel_for()The decorated function must return a
Deferredcompute kernel.Parameters: - num_threads : int
Number of threads that will run in parallel. Defaults to the number of cores in the current machine.
- queue_size : int
Number of
Deferredjobs to be queued up for consumption by the worker threads. The maximum number of jobs that will be kept in memory at any one time will bequeue_size+num_threads.- **kwargs
Variables which will be iterated over in
parallel_for()and passed to the decorated function. See example.
Examples
@parallelize(a=np.linspace(0, 1, 10), b=np.linspace(-2, 2, 10)) def factory(a, b): pb.Model(...) # depends on `a` and `b` greens = pb.greens.kpm(model) return greens.deferred_ldos(...) # may also depend on `a` and `b` results = parallel_for(factory)
-
sweep(factory, plot=<function <lambda>>, labels=None, tags=None, silent=False)¶ Do a multi-threaded parameter sweep
Parameters: - factory :
Factory Factory function created with the
parallelize()decorator.- plot : callable
Plotting functions which takes a
Sweepresult as its only argument.- labels, tags : dict
Forwarded to
Sweepobject.- silent : bool
Don’t print status messages.
Returns: - factory :
-
ndsweep(factory, plot=None, labels=None, tags=None, silent=False)¶ Do a multi-threaded n-dimensional parameter sweep
Parameters: - factory :
Factory Factory function created with the
parallelize()decorator.- plot : callable
Plotting functions which takes a
NDSweepresult as its only argument.- labels, tags : dict
Forwarded to
NDSweepobject.- silent : bool
Don’t print status messages.
Returns: - factory :