CilkPlus

Choosing the right threading framework

This is the second article in a series of articles about High Performance Computing with the Intel Xeon Phi. The Intel Xeon Phi is the first commercial product of Intel to incorporate the Many Integrated Core architecture. In this article I will present various frameworks for unleashing the power of multiple threads on the Xeon Phi. We will also have a look at interesting properties and advantages / disadvantages of each framework.

  • Developers
  • Professors
  • Students
  • Linux*
  • Server
  • C/C++
  • Advanced
  • Intermediate
  • Intel® C++ Composer XE
  • Intel® Cilk™ Plus
  • Intel® Threading Building Blocks
  • MIC
  • Xeon
  • Phi
  • performance
  • Pthreads
  • C++11
  • boost
  • CilkPlus
  • OpenMP*
  • Cluster Computing
  • Parallel Computing
  • Threading
  • An Introduction to Cilk™ Plus Reducers

    If you are new to Cilk™ Plus, you have probably been impressed by how easy it is to turn a serial program into a parallel program. You’ve also realized, though, that adding cilk_sync or cilk_for to a program doesn’t automatically solve the harder parts of parallel programming: dealing with data races, and coordinating work that is done in parallel.

    Intel® Cilk™ Plus – AOBench Sample

    This is the AOBench example associated with the "Intel® Cilk™ Plus – The Simplest Path to Parallelism" how-to article.  It shows an Ambient Occlusion algorithm implemented as serial loops, one using Intel Cilk Plus' cilk_for keyword to implement parallelism, one version using Intel Cilk Plus' array notations to allow vectorization for the SIMD instruction, and another version using both cilk_for and the array notations.  It demonstrates great performance with very little coding changes through both data-parallelism and task-parallelism.
  • Developers
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • Apple OS X*
  • C/C++
  • Beginner
  • Intel® C++ Compiler
  • Intel® C++ Composer XE
  • Intel® Composer XE
  • Intel® C++ Studio XE
  • Intel® Advanced Vector Extensions
  • Intel® Streaming SIMD Extensions
  • AOBench
  • CilkPlus
  • array notation
  • Optimization
  • Parallel Computing
  • Threading
  • Vectorization
  • About Intel Cilk™ Plus and How To Get Started

    This article has been updated for Intel C++ Composer XE 2013 and 2013 SP1 for Windows,  Linux* and Mac OS* X.

    Intel® Cilk™ Plus is a new method for implementing SIMD (SSEs) vectorization and parallel programs. It is supported by the following Intel software development products:

  • Developers
  • Apple OS X*
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 8
  • C/C++
  • Intermediate
  • Intel® C++ Compiler
  • Intel® C++ Composer XE
  • Intel® Parallel Composer
  • CilkPlus
  • simd
  • array notation
  • Parallel Computing
  • Subscribe to CilkPlus