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.