A simple API for parallel computation on collections
Author JuliaFolds
16 Stars
Updated Last
1 Year Ago
Started In
March 2020

SplittablesBase: a simple API for parallel computation on collections

Dev GitHub Actions

SplittablesBase.jl defines a simple set of APIs:

  • halve(collection): splitting given collection roughly in half.
  • amount(collection): an "approximation" of length.

These are the basis of parallel algorithms that can be derived from reduce. Custom containers can support many parallel algorithms by simply defining these functions.

SplittablesTesting.jl provides simple test utility functions SplittablesTesting.test_ordered(examples) and SplittablesTesting.test_unordered(examples) that run some automatable tests with each example container in examples.

See more in the documentation.

Supported collections

halve methods for following collections in Base are implemented in SplittablesBase.jl:

  • AbstractArray
  • AbstractString
  • Dict
  • keys(::Dict)
  • values(::Dict)
  • Set
  • Tuple
  • NamedTuple
  • zip
  • pairs
  • Base.Generator
  • Iterators.filter
  • Iterators.flatten
  • Iterators.partition
  • Iterators.product
  • Iterators.enumerate
  • Iterators.reverse
  • skipmissing

Packages using SplittablesBase.jl

See also