You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
3.1 KiB
68 lines
3.1 KiB
<HTML>
|
|
<BODY>
|
|
|
|
<H2>Overview</H2>
|
|
This directory contains common code that is used in the Intel® Threading Building Blocks (Intel® TBB) examples.
|
|
|
|
<P>
|
|
This code is not intended to be used directly. It is incorporated automatically by the examples that need it.
|
|
</P>
|
|
|
|
<H2>Directories</H2>
|
|
<DL>
|
|
<DT><A HREF="gui">gui</A>
|
|
<DD>GUI code for examples that have graphical user interfaces. Currently supports:
|
|
<UL>
|
|
<LI>GDI+*, DirectDraw*, Direct2D* (Windows* systems)
|
|
<LI>OpenGL* (OS X* systems)
|
|
<LI>X window (Linux* or OS X* systems)
|
|
</UL>
|
|
See the examples that use the GUI
|
|
(<A HREF=../parallel_for/tachyon/index.html>tachyon</A>, <A HREF=../parallel_for/seismic/index.html>seismic</A>)
|
|
for more details.
|
|
</DL>
|
|
<DL>
|
|
<DT><A HREF="utility">utility</A>
|
|
<DD>Common driver & utility code for examples. Currently provides:
|
|
<UL>
|
|
<LI>class FastRandom - a random number generator that uses linear congruental method
|
|
(<A HREF="utility/fast_random.h">fast_random.h</A>)
|
|
<LI>class thread_number_range - a class to specify the numbers of threads an example should use
|
|
(<A HREF="utility/utility.h">utility.h</A>)
|
|
<LI>support for command line interface - class cli_argument_pack and function parse_cli_arguments
|
|
(<A HREF="utility/utility.h">utility.h</A>)
|
|
</UL>
|
|
</DL>
|
|
|
|
<H2>Common information</H2>
|
|
<H3>Number of threads</H3>
|
|
Most Intel TBB examples allow to specify <I>n-of-threads</I>, the set of thread numbers that should be used to run an example.
|
|
<BR>Usually, it is a range of the form <I>low[:high[:(+|*|#)S]]</I>, where <I>low</I> and optional <I>high</I>
|
|
are non-negative integers or 'auto' for the default choice, and optional step expression <I>(+|*|#)S</I>
|
|
specifies how thread numbers are chosen within the range:
|
|
<UL>
|
|
<LI>With <I>+/*</I>, the previous number is incremented/multiplied by <I>S</I>.
|
|
E.g., expression '12:16:+1' means 12,13,14,15,16 threads, and '1:16:*2' means 1,2,4,8,16 threads.
|
|
<LI>With <I>#</I>, <I>S</I> 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.
|
|
</UL>
|
|
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().
|
|
<P/>
|
|
|
|
<HR>
|
|
<A HREF="../index.html">Up to parent directory</A>
|
|
<p></p>
|
|
Copyright © 2005-2014 Intel Corporation. All Rights Reserved.
|
|
<P></P>
|
|
Intel is a registered trademark or trademark of Intel Corporation
|
|
or its subsidiaries in the United States and other countries.
|
|
<p></p>
|
|
* Other names and brands may be claimed as the property of others.
|
|
</BODY>
|
|
</HTML>
|