Code sample

Intel® TBB 1-minute feature intro videos

Intro videos to commonly used features

This video series contains several one-minute long videos introducing some of the most useful features within Intel TBB such as the concurrent_queue and concurrent_vector containers, the parallel_for algorithm and the malloc_proxy library. Utilizing these features can help C++ developers take advantage of multi-core architecture and greatly improve performance on multi-threaded applications.

See code samples

  • Intel® Threading Building Blocks
  • Intel TBB
  • Parallel Programming
  • C++
  • Code sample
  • Multithreading
  • parallel processing
  • intel threading building blocks
  • Timer Utility

    Why this Timer Utility Class CUtilTimer?

    Timing a code snippet is an important part of performance analysis and tuning. There is not, however, a unique API or timer utility that works across Microsoft* Windows*, Linux*, and OS X*, which makes it difficult to maintain an application which runs on all three platforms. This timer class is designed to get around this problem by providing a common interface and hiding the platform specific implementations of extracting timing information from the programmer.

    Rendering: AOBench

    Ambient Occlusion is an algorithm that approximates the reflection of light off non-reflective surfaces. Since calculating true light reflection is incredibly expensive and impractical given today's hardware, algorithms like ambient occlusion are used to get convincingly close. Ambient occlusion finds intersections with objects in the scene and a ray from the origin to each pixel on the screen. If there is an intersection (a "hit"), it searches for intersections again, but using the "hit" as an origin. Depending on how many intersections it finds, it will be lighter or darker, to imitate shadows, which is the goal of ambient occlusion. Intel® Cilk™ Plus cilk_for is used to render multiple horizontal lines in parallel, while Intel Cilk Plus Array Notation is used to speed up the search for intersections with the "hit" as an origin. In the scalar implementation, the auto-vectorizer does a somewhat poor job of vectorizing the ambient occlusion calculation (intersections with the "hit" as an origin), which can be fixed by adding a single Intel Cilk Plus SIMD Notation line.

    Utilities

    This section contains the following utility classes:

    Name Description
    Timer Utility Utility class written in C++ that can be used to measure performance.
    Supported platforms: Windows*, Linux* and OS X*.
    Iscriversi a Code sample