Overview
This directory contains common code that is used in the Intel® Threading Building Blocks (Intel® TBB) examples.
This code is not intended to be used directly. It is incorporated automatically by the examples that need it.
Directories
- gui
- GUI code for examples that have graphical user interfaces. Currently supports:
- GDI+*, DirectDraw*, Direct2D* (Windows* systems)
- OpenGL* (OS X* systems)
- X window (Linux* or OS X* systems)
See the examples that use the GUI
(tachyon, seismic)
for more details.
- utility
- Common driver & utility code for examples. Currently provides:
- class FastRandom - a random number generator that uses linear congruental method
(fast_random.h)
- class thread_number_range - a class to specify the numbers of threads an example should use
(utility.h)
- support for command line interface - class cli_argument_pack and function parse_cli_arguments
(utility.h)
Common information
Number of threads
Most Intel TBB examples allow to specify n-of-threads, the set of thread numbers that should be used to run an example.
Usually, it is a range of the form low[:high[:(+|*|#)S]], where low and optional high
are non-negative integers or 'auto' for the default choice, and optional step expression (+|*|#)S
specifies how thread numbers are chosen within the range:
- With +/*, the previous number is incremented/multiplied by S.
E.g., expression '12:16:+1' means 12,13,14,15,16 threads, and '1:16:*2' means 1,2,4,8,16 threads.
- With #, S is the desired number of steps between any subsequent powers of 2;
it must be a power of 2 on its own, with most meaningful values being 2,4, and 8.
For a given number of threads, the actual step value is computed as the quotient
of the nearest smaller power of 2 divided by the number of steps, but is at least 1.
E.g., '1:32:#4' means 1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32 threads;
note the step doubling at 8 and 16 to keep 4 steps between powers of 2.
A default value for the number of threads can be customized in an example; if not customized, it is '1:auto:#4'.
The 'auto' parameter is substituted with a value returned by a specified function, which typically is
tbb::task_scheduler_init::default_num_threads().
Up to parent directory
Copyright © 2005-2014 Intel Corporation. All Rights Reserved.
Intel is a registered trademark or trademark 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.