diff --git a/pstl/include/pstl/internal/omp/parallel_reduce.h b/pstl/include/pstl/internal/omp/parallel_reduce.h --- a/pstl/include/pstl/internal/omp/parallel_reduce.h +++ b/pstl/include/pstl/internal/omp/parallel_reduce.h @@ -23,6 +23,9 @@ __parallel_reduce_body(_RandomAccessIterator __first, _RandomAccessIterator __last, _Value __identity, _RealBody __real_body, _Reduction __reduce) { + if(__last - __first < 2) + return __real_body(__first, __last, __identity); + auto __middle = __first + ((__last - __first) / 2); _Value __v1(__identity), __v2(__identity); __parallel_invoke_body(