Intel(R) Threading Building Blocks Doxygen Documentation version 4.2.3
tbb::strict_ppl Namespace Reference

For internal use only. More...

Namespaces

namespace  internal
 

Classes

class  concurrent_queue
 A high-performance thread-safe non-blocking concurrent queue. More...
 

Functions

template<typename Index , typename Function , typename Partitioner >
void parallel_for_impl (Index first, Index last, Index step, const Function &f, Partitioner &partitioner)
 Implementation of parallel iteration over stepped range of integers with explicit step and partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f)
 Parallel iteration over a range of integers with a step provided and default partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, const simple_partitioner &partitioner)
 Parallel iteration over a range of integers with a step provided and simple partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, const auto_partitioner &partitioner)
 Parallel iteration over a range of integers with a step provided and auto partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, const static_partitioner &partitioner)
 Parallel iteration over a range of integers with a step provided and static partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, affinity_partitioner &partitioner)
 Parallel iteration over a range of integers with a step provided and affinity partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f)
 Parallel iteration over a range of integers with a default step value and default partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, const simple_partitioner &partitioner)
 Parallel iteration over a range of integers with a default step value and simple partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, const auto_partitioner &partitioner)
 Parallel iteration over a range of integers with a default step value and auto partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, const static_partitioner &partitioner)
 Parallel iteration over a range of integers with a default step value and static partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, affinity_partitioner &partitioner)
 Parallel iteration over a range of integers with a default step value and affinity partitioner. More...
 
template<typename Index , typename Function , typename Partitioner >
void parallel_for_impl (Index first, Index last, Index step, const Function &f, Partitioner &partitioner, tbb::task_group_context &context)
 Implementation of parallel iteration over stepped range of integers with explicit step, task group context, and partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, tbb::task_group_context &context)
 Parallel iteration over a range of integers with explicit step, task group context, and default partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, const simple_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with explicit step, task group context, and simple partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, const auto_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with explicit step, task group context, and auto partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, const static_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with explicit step, task group context, and static partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, Index step, const Function &f, affinity_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with explicit step, task group context, and affinity partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, tbb::task_group_context &context)
 Parallel iteration over a range of integers with a default step value, explicit task group context, and default partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, const simple_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with a default step value, explicit task group context, and simple partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, const auto_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with a default step value, explicit task group context, and auto partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, const static_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with a default step value, explicit task group context, and static partitioner. More...
 
template<typename Index , typename Function >
void parallel_for (Index first, Index last, const Function &f, affinity_partitioner &partitioner, tbb::task_group_context &context)
 Parallel iteration over a range of integers with a default step value, explicit task group context, and affinity_partitioner. More...
 

Detailed Description

For internal use only.

Function Documentation

◆ parallel_for() [1/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f 
)

Parallel iteration over a range of integers with a default step value and default partitioner.

Definition at line 315 of file tbb/parallel_for.h.

315 {
316 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, static_cast<Index>(1), f, auto_partitioner());
317}
auto last(Container &c) -> decltype(begin(c))
auto first(Container &c) -> decltype(begin(c))
An auto partitioner.
Definition: partitioner.h:613

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [2/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
affinity_partitioner partitioner 
)

Parallel iteration over a range of integers with a default step value and affinity partitioner.

Definition at line 335 of file tbb/parallel_for.h.

335 {
336 parallel_for_impl(first, last, static_cast<Index>(1), f, partitioner);
337}
void parallel_for_impl(Index first, Index last, Index step, const Function &f, Partitioner &partitioner, tbb::task_group_context &context)
Implementation of parallel iteration over stepped range of integers with explicit step,...

References tbb::internal::first(), tbb::internal::last(), and parallel_for_impl().

Here is the call graph for this function:

◆ parallel_for() [3/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
affinity_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with a default step value, explicit task group context, and affinity_partitioner.

Definition at line 403 of file tbb/parallel_for.h.

403 {
404 parallel_for_impl(first, last, static_cast<Index>(1), f, partitioner, context);
405}

References tbb::internal::first(), tbb::internal::last(), and parallel_for_impl().

Here is the call graph for this function:

◆ parallel_for() [4/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
const auto_partitioner partitioner 
)

Parallel iteration over a range of integers with a default step value and auto partitioner.

Definition at line 325 of file tbb/parallel_for.h.

325 {
326 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, static_cast<Index>(1), f, partitioner);
327}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [5/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
const auto_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with a default step value, explicit task group context, and auto partitioner.

Definition at line 393 of file tbb/parallel_for.h.

393 {
394 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, static_cast<Index>(1), f, partitioner, context);
395}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [6/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
const simple_partitioner partitioner 
)

Parallel iteration over a range of integers with a default step value and simple partitioner.

Definition at line 320 of file tbb/parallel_for.h.

320 {
321 parallel_for_impl<Index,Function,const simple_partitioner>(first, last, static_cast<Index>(1), f, partitioner);
322}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [7/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
const simple_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with a default step value, explicit task group context, and simple partitioner.

Definition at line 388 of file tbb/parallel_for.h.

388 {
389 parallel_for_impl<Index,Function,const simple_partitioner>(first, last, static_cast<Index>(1), f, partitioner, context);
390}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [8/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
const static_partitioner partitioner 
)

Parallel iteration over a range of integers with a default step value and static partitioner.

Definition at line 330 of file tbb/parallel_for.h.

330 {
331 parallel_for_impl<Index,Function,const static_partitioner>(first, last, static_cast<Index>(1), f, partitioner);
332}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [9/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
const static_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with a default step value, explicit task group context, and static partitioner.

Definition at line 398 of file tbb/parallel_for.h.

398 {
399 parallel_for_impl<Index,Function,const static_partitioner>(first, last, static_cast<Index>(1), f, partitioner, context);
400}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [10/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
const Function &  f,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with a default step value, explicit task group context, and default partitioner.

Definition at line 383 of file tbb/parallel_for.h.

383 {
384 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, static_cast<Index>(1), f, auto_partitioner(), context);
385}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [11/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f 
)

Parallel iteration over a range of integers with a step provided and default partitioner.

Definition at line 289 of file tbb/parallel_for.h.

289 {
290 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, step, f, auto_partitioner());
291}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [12/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
affinity_partitioner partitioner 
)

Parallel iteration over a range of integers with a step provided and affinity partitioner.

Definition at line 309 of file tbb/parallel_for.h.

309 {
310 parallel_for_impl(first, last, step, f, partitioner);
311}

References tbb::internal::first(), tbb::internal::last(), and parallel_for_impl().

Here is the call graph for this function:

◆ parallel_for() [13/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
affinity_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with explicit step, task group context, and affinity partitioner.

Definition at line 376 of file tbb/parallel_for.h.

376 {
377 parallel_for_impl(first, last, step, f, partitioner, context);
378}

References tbb::internal::first(), tbb::internal::last(), and parallel_for_impl().

Here is the call graph for this function:

◆ parallel_for() [14/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
const auto_partitioner partitioner 
)

Parallel iteration over a range of integers with a step provided and auto partitioner.

Definition at line 299 of file tbb/parallel_for.h.

299 {
300 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, step, f, partitioner);
301}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [15/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
const auto_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with explicit step, task group context, and auto partitioner.

Definition at line 366 of file tbb/parallel_for.h.

366 {
367 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, step, f, partitioner, context);
368}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [16/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
const simple_partitioner partitioner 
)

Parallel iteration over a range of integers with a step provided and simple partitioner.

Definition at line 294 of file tbb/parallel_for.h.

294 {
295 parallel_for_impl<Index,Function,const simple_partitioner>(first, last, step, f, partitioner);
296}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [17/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
const simple_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with explicit step, task group context, and simple partitioner.

Definition at line 361 of file tbb/parallel_for.h.

361 {
362 parallel_for_impl<Index,Function,const simple_partitioner>(first, last, step, f, partitioner, context);
363}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [18/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
const static_partitioner partitioner 
)

Parallel iteration over a range of integers with a step provided and static partitioner.

Definition at line 304 of file tbb/parallel_for.h.

304 {
305 parallel_for_impl<Index,Function,const static_partitioner>(first, last, step, f, partitioner);
306}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [19/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
const static_partitioner partitioner,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with explicit step, task group context, and static partitioner.

Definition at line 371 of file tbb/parallel_for.h.

371 {
372 parallel_for_impl<Index,Function,const static_partitioner>(first, last, step, f, partitioner, context);
373}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for() [20/20]

template<typename Index , typename Function >
void tbb::strict_ppl::parallel_for ( Index  first,
Index  last,
Index  step,
const Function &  f,
tbb::task_group_context context 
)

Parallel iteration over a range of integers with explicit step, task group context, and default partitioner.

Definition at line 356 of file tbb/parallel_for.h.

356 {
357 parallel_for_impl<Index,Function,const auto_partitioner>(first, last, step, f, auto_partitioner(), context);
358}

References tbb::internal::first(), and tbb::internal::last().

Here is the call graph for this function:

◆ parallel_for_impl() [1/2]

template<typename Index , typename Function , typename Partitioner >
void tbb::strict_ppl::parallel_for_impl ( Index  first,
Index  last,
Index  step,
const Function &  f,
Partitioner &  partitioner 
)

Implementation of parallel iteration over stepped range of integers with explicit step and partitioner.

Definition at line 275 of file tbb/parallel_for.h.

275 {
276 if (step <= 0 )
277 internal::throw_exception(internal::eid_nonpositive_step); // throws std::invalid_argument
278 else if (last > first) {
279 // Above "else" avoids "potential divide by zero" warning on some platforms
280 Index end = (last - first - Index(1)) / step + Index(1);
281 tbb::blocked_range<Index> range(static_cast<Index>(0), end);
283 tbb::parallel_for(range, body, partitioner);
284 }
285}
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
void parallel_for(const Range &range, const Body &body)
Parallel iteration over range with default partitioner.
void throw_exception(exception_id eid)
Versionless convenience wrapper for throw_exception_v4()
A range over which to iterate.
Definition: blocked_range.h:45
Calls the function with values from range [begin, end) with a step provided.

References tbb::internal::eid_nonpositive_step, end, tbb::internal::first(), tbb::internal::last(), tbb::parallel_for(), and tbb::internal::throw_exception().

Referenced by parallel_for().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_for_impl() [2/2]

template<typename Index , typename Function , typename Partitioner >
void tbb::strict_ppl::parallel_for_impl ( Index  first,
Index  last,
Index  step,
const Function &  f,
Partitioner &  partitioner,
tbb::task_group_context context 
)

Implementation of parallel iteration over stepped range of integers with explicit step, task group context, and partitioner.

Definition at line 342 of file tbb/parallel_for.h.

342 {
343 if (step <= 0 )
344 internal::throw_exception(internal::eid_nonpositive_step); // throws std::invalid_argument
345 else if (last > first) {
346 // Above "else" avoids "potential divide by zero" warning on some platforms
347 Index end = (last - first - Index(1)) / step + Index(1);
348 tbb::blocked_range<Index> range(static_cast<Index>(0), end);
350 tbb::parallel_for(range, body, partitioner, context);
351 }
352}

References tbb::internal::eid_nonpositive_step, end, tbb::internal::first(), tbb::internal::last(), tbb::parallel_for(), and tbb::internal::throw_exception().

Here is the call graph for this function:

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.