Add prefix ThreadsX. to functions from Base to get some speedup, if supported. The reduce-based functions support any collections that implement SplittablesBase.jl interface including arrays, Dict, Set, and iterator transformations. In particular, these functions support iterator comprehension. ThreadsX.jl is aiming at providing API compatible with Base functions to easily parallelize Julia programs. All functions that exist directly under ThreadsX namespace are public API and they implement a subset of API provided by Base. Everything inside ThreadsX.Implementations is an implementation detail. The public API functions of ThreadsX expect that the data structure and function(s) passed as argument are "thread-friendly" in the sense that operating on distinct elements in the given container from multiple tasks in parallel is safe. For example, ThreadsX.sum(f, array) assumes that executing f(::eltype(array)) and accessing elements as in array[i] from multiple threads is safe.
Features
- ThreadsX.jl is aiming at providing API compatible with Base functions to easily parallelize Julia programs
- Rich collection support
- Add prefix ThreadsX
- To find out functions supported by ThreadsX.jl, just type ThreadsX
- The reduce-based functions support any collections that implement SplittablesBase.jl interface including arrays
- Functions support iterator comprehension