Skip to content
Snippets Groups Projects
intel-tbb.md 1.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    # Intel TBB
    
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    David Hrbáč's avatar
    David Hrbáč committed
    Intel Threading Building Blocks (Intel TBB) is a library that supports scalable parallel programming using standard ISO C++ code. It does not require special languages or compilers.  To use the library, you specify tasks, not threads, and let the library map tasks onto threads in an efficient manner. The tasks are executed by a runtime scheduler and may be offloaded to [MIC accelerator][1].
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    Intel is available on the cluster.
    
    ```console
    $ ml av tbb
    ```
    
    
    Jan Siwiec's avatar
    Jan Siwiec committed
    The module sets up environment variables, required for linking and running TBB-enabled applications.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    Jan Siwiec's avatar
    Jan Siwiec committed
    Link the TBB library using `-ltbb`.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    ## Examples
    
    
    Jan Siwiec's avatar
    Jan Siwiec committed
    A number of examples demonstrating use of TBB and its built-in scheduler is available on Anselm, in the $TBB_EXAMPLES directory.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    ```console
    $ ml intel
    $ ml tbb
    $ cp -a $TBB_EXAMPLES/common $TBB_EXAMPLES/parallel_reduce /tmp/
    $ cd /tmp/parallel_reduce/primes
    $ icc -O2 -DNDEBUG -o primes.x main.cpp primes.cpp -ltbb
    $ ./primes.x
    ```
    
    
    Jan Siwiec's avatar
    Jan Siwiec committed
    In this example, we compile, link, and run the primes example, demonstrating use of parallel task-based reduce in computation of prime numbers.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    Jan Siwiec's avatar
    Jan Siwiec committed
    You will need the `tbb` module loaded to run the TBB-enabled executable. This may be avoided by compiling library search paths into the executable.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    ```console
    $ icc -O2 -o primes.x main.cpp primes.cpp -Wl,-rpath=$LIBRARY_PATH -ltbb
    ```
    
    ## Further Reading
    
    
    David Hrbáč's avatar
    David Hrbáč committed
    Read more on Intel [website][a].
    
    [1]: ../intel-xeon-phi-salomon.md
    
    [a]: http://software.intel.com/sites/products/documentation/doclib/tbb_sa/help/index.htm