35 #ifndef _GLIBCXX_PARALLEL_FOR_EACH_H 36 #define _GLIBCXX_PARALLEL_FOR_EACH_H 1 58 template<
typename _IIter,
typename _UserOp,
59 typename _Functionality,
typename _Red,
typename _Result>
63 _Functionality& __functionality,
65 _Result __reduction_start,
66 _Result& __output,
typename 67 std::iterator_traits<_IIter>::
68 difference_type __bound,
73 (__begin, __end, __user_op, __functionality, __reduction,
74 __reduction_start, __output, __bound);
77 (__begin, __end, __user_op, __functionality, __reduction,
78 __reduction_start, __output, __bound);
81 (__begin, __end, __user_op, __functionality, __reduction,
82 __reduction_start, __output, __bound);
85 (__begin, __end, __user_op, __functionality, __reduction,
86 __reduction_start, __output, __bound);
Parallel with OpenMP dynamic load-balancing.
_Op __for_each_template_random_access_workstealing(_RAIter __begin, _RAIter __end, _Op __op, _Fu &__f, _Red __r, _Result __base, _Result &__output, typename std::iterator_traits< _RAIter >::difference_type __bound)
Work stealing algorithm for random access iterators.
_UserOp __for_each_template_random_access(_IIter __begin, _IIter __end, _UserOp __user_op, _Functionality &__functionality, _Red __reduction, _Result __reduction_start, _Result &__output, typename std::iterator_traits< _IIter >::difference_type __bound, _Parallelism __parallelism_tag)
Chose the desired algorithm by evaluating __parallelism_tag.
Parallel with OpenMP static load-balancing.
_Op __for_each_template_random_access_ed(_RAIter __begin, _RAIter __end, _Op __o, _Fu &__f, _Red __r, _Result __base, _Result &__output, typename std::iterator_traits< _RAIter >::difference_type __bound)
Embarrassingly parallel algorithm for random access iterators, using hand-crafted parallelization by ...
Parallelization of embarrassingly parallel execution by means of an OpenMP for loop. This file is a GNU parallel extension to the Standard C++ Library.
Parallel unbalanced (equal-sized chunks).
_Op __for_each_template_random_access_omp_loop(_RAIter __begin, _RAIter __end, _Op __o, _Fu &__f, _Red __r, _Result __base, _Result &__output, typename std::iterator_traits< _RAIter >::difference_type __bound)
Embarrassingly parallel algorithm for random access iterators, using an OpenMP for loop...
GNU parallel code for public use.
Parallelization of embarrassingly parallel execution by means of equal splitting. This file is a GNU ...
_Parallelism
Run-time equivalents for the compile-time tags.
Runtime settings and tuning parameters, heuristics to decide whether to use parallelized algorithms...
Parallelization of embarrassingly parallel execution by means of work-stealing.