FoldsThreads.jl provides extra thread-based executors usable with various JuliaFolds/*.jl packages such as Transducers.jl and FLoops.jl.
Executors ,----------------------. Algorithms | FoldsThreads.jl | Data structures ,------------------. |-----------------------| ,-----------------. | FLoops, | | ThreadedEx* | | Array, | | Folds, | | WorkStealingEx, | | Tables, | | Transducers, | --- | DepthFirstEx, | --- | FGenerators, | | OnlineStats, | | TaskPoolEx, | | Dict, | | DataTools, ... ' | NondeterministicEx, | | Set, ... | `------------------' | ... | `-----------------' `-----------------------' (* ThreadedEx is the default executor provided by Transducers.jl)
WorkStealingEximplements work stealing (continuation stealing). Useful for load-balancing.DepthFirstEximplements depth-first scheduling. Useful forfindfirst-type computations.TaskPoolEx: Task pool executor. Useful for fine execution control (e.g., back pressure and "background" threads).NondeterministicEx: An executor for parallelizing computations with non-parallelizable iterators.