Easy Parallel Programming: Cilk Plus Ported To GCC

Posted by Michael Larabel on August 15, 2011

Early this morning I mentioned some of the features for GCC 4.7 as what one can expect when this next major open-source compiler update is out in a matter of months. There was some speculation in the forums that this article was a preemptive article coming just before a big code drop. As luck would have it, this afternoon there's a big Intel GCC announcement.

Balaji V. Iyer of Intel has announced a port of Intel Cilk Plus to GCC. Intel has landed a branch of GCC (to be merged later, right now the GCC branch is "cilkplus") that ports Cilk Plus language extensions to the C and C++ front-ends of GCC 4.7.

Intel prides Cilk Plus for the ability to write parallel programs using a simple model, utilize data parallelism by simple array notations, leverages existing serial tools, and can scale for the future. From Intel's web-site, "The three Intel Cilk Plus keywords provide a simple yet surprisingly powerful model for parallel programming, while runtime and template libraries offer a well-tuned environment for building parallel applications."

Cilk Plus is a set of C/C++ constructions by Intel for task-parallel and data-parallel programming. These constructs are designed to improve performance on multi-core CPUs in a very easy manner. This parallel programming method is particularly easy with the addition of just three C/C++ keywords.

Cilk Plus was originally released in September of 2010 after Intel's 2009 acquisition of Cilk Arts. In 2010 they also published a language specification and ABI specification so that other compilers could implement Cilk Plus, but now Intel has finally contributed the needed patches to GCC.

Besides patching the C/C++ front-ends, this work also requires a Cilk Plus run-time library, which is part of the new GCC branch and the run-time library is BSD licensed.

For those interested in parallel programming, see the mailing list announcement. To learn more about Cilk Plus, visit CilkPlus.org.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. F2FS File-System Shows Regressions On Linux 3.10
  4. Previewing The Radeon Gallium3D Shader Optimizations
Latest Linux News
  1. Mageia 3 Released, Still Using Legacy GRUB
  2. NetBSD 6.1 Brings In More Features
  3. Using Six Monitors With AMD's Open-Source Linux Driver
  4. Benchmarking The Intel P-State, CPUfreq Changes
  5. FreeBSD Still Working On Next-Gen Package Manager
  6. DNF Still Advancing As Experimental Yum For Fedora
  7. Logitech Begins Supporting Linux Users
  8. Modern Intel Gallium3D Driver Still Being Toyed With
  9. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  10. GCC 4.8.1 Compiler Due To Be Out Next Week
  11. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
Latest Forum Talk
  1. Kubuntu, KDE Has Little Hope For Ubuntu's Mir
  2. Mageia 3 Released, Still Using Legacy GRUB
  3. OpenSUSE Considers Replacing LXDE With E17
  4. Using Six Monitors With AMD's Open-Source Linux...
  5. Sumo Lounge Emperor
  6. BHyVe: A New Hypervisor Coming To FreeBSD 10.0
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite