-
Tom Jackson authored
Summary: Adding `... | parallel(my | pipe | line) | ...` for parallelizing a portion of a generator pipeline. ```lang=cpp auto factored = from(values) | parallel(filter(isEven) | map(square) | sub(count)) | sum; ``` Work is divided evenly among a fixed number of threads using a `MPMCQueue`. Test Plan: Unit tests and benchmarks testing for a variety of workloads and performance characteristics, including sub-linear (blocking) workloads, linear (mostly math) workloads, and superlinear (sleeping) workloads to simulate real-world use. Reviewed By: lucian@fb.com FB internal diff: D638551
d3cc50e0