Intel® Threading Building Blocks C++ Sample Application Code Document number: US. Get the open-source TBB tarball from ( select the Commercial Aligned Release). Copy or move the tarball to whatever. Discover a powerful alternative to POSIX and Windows-based threads – Intel Threading Building Blocks, a C++ based framework design.

Author: Munos Zolojind
Country: Switzerland
Language: English (Spanish)
Genre: Business
Published (Last): 19 November 2004
Pages: 468
PDF File Size: 3.13 Mb
ePub File Size: 16.9 Mb
ISBN: 921-9-46511-936-3
Downloads: 23638
Price: Free* [*Free Regsitration Required]
Uploader: Fausar

By the end of the tutorial, attendees will be familiar with the important architectural features of commonly available accelerators and will have a sense of what optimizations and types of parallelism are suitable for these devices. When splitting the array into sub-arrays for each individual thread, you inrel to maintain some granularity for example, each thread is responsible for summing N elements, where N is neither too big nor too small.

One issue that frequently crops up during multithreaded programming is the number of CPU cycles wasted on the locking and unlocking of mutexes. In the last five years, he has focused on productively exploiting heterogeneous chips.

Obviously, this increases container overhead. It’s also way too low-level an approach—for example, you don’t have access to any concurrent containers, nor are there any concurrent algorithms to use. This tutorial starts with a survey of heterogeneous architectures and programming models, and discusses how to determine if a computation is suitable for a particular accelerator. Take a look at Tutogial 9.

Tutorial: Develop an Application With Intel® Threading Building Blocks

The files are also available as syntax-highlighted HTML here fatals. After sourcing the environment variables, the only thing to keep in mind is that you must link with the -ltbb flag.


See Related topics for links to more detail. Attendees should also have an understanding of basic parallel programming concepts such as threads and locks. The library provides generic parallel algorithms, concurrent containers, a work-stealing task scheduler, a data flow programming abstraction, low-level primitives for synchronization, thread local storage and a scalable memory allocator. To actually compile with TBB, we have to set some environment variables.

The students will then be given an overview of the new features included in the library for heterogeneous programming and have a hands- on opportunity to convert an example they developed for shared-memory into one that performs hybrid execution on both the CPU and an accelerator.


Intel® Threading Building Blocks Tutorial

This allows the TBB library headers to handle the parallelism without making any modifications to the compiler. Motivation and background 90 An introduction to heterogeneous architectures — 45 minutes Important features of different accelerators such as GPUs and FPGAs How to measure performance and energy A survey of heterogeneous programming models How to determine if a computation is suitable for an accelerator Success stories: Listing 5 below shows the code.

Downloading and installing Intel TBB requires nothing special: When Sun 25 Feb Conceptually, running this code in a parallel context would mean that each thread of control should sum up certain portions of the array, and there must be a join method somewhere that adds up the partial summations. The copy constructor and destructor should be public, and you leave the compiler to provide the defaults for you. They will also know the TBB library, have experience using its generic algorithms and concurrent containers to create a shared-memory parallel program, understand its features for heterogeneous programming and will learn how to build and execute a hybrid application.


Instead, this article attempted to provide insight into some of the compelling features that Intel TBB comes with—tasks, concurrent containers, algorithms, and a way to create lock-free code. Follow the instructions on the page https: This document gives a quick example of how to use Intel’s Thread Building Blocks, by means of a simple example. TBB is available as both a commercial product and as a permissively licensed open-source project at http: Operations on count are atomic and cannot be interrupted by the vagaries of process or thread scheduling.

You must always set the ref count for a task before spawning children.

For the hands-on session there will be three alternatives: The documentation says it’s primarily for performance reasons. This discussion of Intel TBB begins with creating and playing around with tasks and synchronization primitives mutex followed by using the concurrent containers and parallel algorithms.

Windows or Linux instructions: Iintel handy shell script for setting up the environment is sitting in your TBB install directory. Let’s move on to concurrent containers.

Learn about the Intel® Threading Building Blocks library

Due to energy constraints, high performance computing platforms are becoming increasingly heterogeneous, achieving greater performance per watt through the ttorial of hardware that is tuned to specific computational kernels or application domains.

Notice the output file as it was done in section 3. It must have a method named join to add partial sums and a constructor with special arguments called the splitting constructor.