reactor-core/src/main/java/reactor/core/publisher/ParallelFlux.java
public final <R> ParallelFlux<R> reduce(Supplier<R> initialSupplier,
			BiFunction<R, ? super T, R> reducer) {
		Objects.requireNonNull(initialSupplier, "initialSupplier");
		Objects.requireNonNull(reducer, "reducer");
		return onAssembly(new ParallelReduceSeed<>(this, initialSupplier, reducer));
	}
public final <R> ParallelFlux<R> reduce(Supplier<R> initialSupplier,
			BiFunction<R, ? super T, R> reducer) {
		Objects.requireNonNull(initialSupplier, "initialSupplier");
		Objects.requireNonNull(reducer, "reducer");
		return onAssembly(new ParallelReduceSeed<>(this, initialSupplier, reducer));
	}
Reduces all values within a 'rail' to a single value (with a possibly different
type) via a reducer function that is initialized on each rail from an
initialSupplier value.
<p>
Note that the same mapper function may be called from multiple threads
concurrently.

@param <R> the reduced output type
@param initialSupplier the supplier for the initial value
@param reducer the function to reduce a previous output of reduce (or the initial
value supplied) with a current source value.

@return the new {@link ParallelFlux} instance