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);
Parallelization of embarrassingly parallel execution by means of work-stealing.
Parallelization of embarrassingly parallel execution by means of an OpenMP for loop. This file is a GNU parallel extension to the Standard C++ Library.
_Parallelism
Run-time equivalents for the compile-time tags.
Parallelization of embarrassingly parallel execution by means of equal splitting. This file is a GNU ...
Parallel with OpenMP static load-balancing.
Runtime settings and tuning parameters, heuristics to decide whether to use parallelized algorithms...
_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.
_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...
Parallel with OpenMP dynamic load-balancing.
GNU parallel code for public use.
_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 ...
Parallel unbalanced (equal-sized chunks).