Cilk Tools

Tools to help you work with Intel Cilk Plus code.

Intel Cilk Plus SDK build 3229

The Intel Cilk Plus SDK provides the following tools:

 
  • The Intel Cilk screen race detector
  • The Intel Cilk view scalability analyzer
 
This release is compatible with code generated by Intel® C++ Composer XE 2011 SP1 or later, or the GCC "cilkplus" branch C/C++ compiler.
2013-03-19 Submitted by: The Intel Cilk Plus Development Team

Linux
11.21 MB

Windows
12.98 MB
Intel Cilk Plus SDK build 2516

The Intel Cilk Plus SDK provides the following tools:

  • The Intel Cilk screen race detector
  • The Intel Cilk view scalability analyzer

This release is compatible with code generated by Intel® C++ Composer XE 2011 SP1 or later, or the GCC "cilkplus" branch C/C++ compiler.

2012-03-07 Submitted by: The Intel Cilk Plus Development Team

Linux
11.5 MB

Windows
13.17 MB
extsrc-2.10

Copies of libelf.so and libdwarf.so for use with Cilkscreen and Cilkview, along with the LGPL-required license agreement and pointer to the sources that match these binaries.

2012-03-07 Submitted by: The Intel Cilk Plus Development Team

Linux
1.14 MB

Windows

Contributed Code

Code contributed by the community to the Cilk Plus project.

Cilkpub

Cilkpub is a library of community-contributed Cilk Plus code. The current package (version 1.02) contains the sources for two modules: parallel sorting, and the DotMix DPRNG. See the announcement in the Intel® Cilk™ Plus forum for additional details.

Version: 1.02 2013-04-03 Contributor: Intel Cilk Plus Development Team
DotMix DPRNG

DotMix is a deterministic parallel random number generator for Cilk Plus. This library is based on research conducted at MIT, as described in Deterministic parallel random-number generation for dynamic-multithreading platforms. This code relies on pedigrees, a feature supported by compilers implementing Cilk Plus as described in ABI document version 1.1 or later. This package contains Version 1.01 of DotMix. The most recent version of DotMix is now included as part of Cilkpub.

Version: 1.01 2013-03-05 Contributor: Tao B. Schardl and Jim Sukha
libzca 195

libzca provides a framework for accessing metadata in a PIN tool. libzca is shipped as source and requires that you download the PIN dynamic binary instrumentation tool separately. PIN is available from http://www.pintool.org.

The libzca kit includes the full source for the cilkprof tool. cilkprof is an extension of the Intel Cilk view scalability analyzer. cilkprof provides work and span values on a per-function basis.

Version: Build 195 2013-01-17 Contributor: Intel Cilk Plus Development Team
libzca 181

libzca provides a framework for accessing metadata in a PIN tool. libzca is shipped as source and requires that you download the PIN dynamic binary instrumentation tool separately. PIN is available from http://www.pintool.org.

The libzca kit includes the full source for the cilkprof tool.  cilkprof is an extension of the Intel Cilk view scalability analyzer.  cilkprof provides work and span values on a per-function basis.

Version: Build 181 2012-10-24 Contributor: Intel Cilk Plus Development Team

Code Samples

Code snippets, examples, & samples to help you become familiar with Cilk Plus.

Contributions are welcome! Please submit your code using the Submit Contribution page.

Structured Parallel Programming Code Examples

Example code from Structured Parallel Programming by Michael McCool, Arch Robison, James Reinders.

This text offers a way to learn parallel programming for any C or C++ programmer, in a manner that will be highly effective because it teaches the most important and successful parallel programming strategies.  Examples are in both Cilk Plus and TBB, and the patterns apply to other parallel frameworks.

Updated versions of the code may be available at the Downloads tab of the Structured Parallel Programming website.

March 7, 2013 Submitted by: Barry Tannenbaum & Arch Robison

spp_code_0.zip

176.71 KB
Cilk Plus Tutorial Sources

A tarball containing all of the sources from the Cilk Plus tutorial.

22-Apr-2013 - Updated with sample programs to demonstrate the use of the reducers provided in the Cilk Reducer Library.

November 12, 2012 Submitted by: The Intel Cilk Plus Development Team
Cilk Fib

Calculation of a Fibonacci number in parallel. While this is certainly not the best possible way to calculate a Fibonacci number, it provides a simple demonstration of using cilk_spawn and cilk_sync to parallelize a recursive algorithm.

July 11, 2012 Submitted by: The Intel Cilk Plus Development Team

cilk-fib.tgz

1.78 KB

Open Specifications

Intel Cilk Plus is an essential tool to implement parallelism. As the first step towards our commitment for broad adoption of Cilk Plus, we are making public the language specification that includes both our simple keywords and array notations. These specifications are designed to help other compiler developers implement Cilk Plus for their platforms.

Application Binary Interface (ABI) V1.1
Intel Cilk Plus ABI as implemented by Intel® Composer XE 2011 SP1.This document describes the Intel® Cilk™ Plus Application Binary Interface, the interface between compiler-generated code and the Intel® Cilk™ Plus runtime. The purpose of this document is to allow a compiler writer to generate code to use the runtime. This interface is version-specific. Previous versions of Cilk have used a different interface and future versions may change the interface.
December 21, 2011 Submitted by: The Intel Cilk Plus Development Team
Intrinsics for Low Overhead Tool Annotations V1.0
This document specifies two compiler intrinsics that eliminate the overhead in most real use cases, and certainly reduces it. The intrinsics enable richly annotating libraries for tools without incurring significant run-time costs when the tools are not in use. Each annotation is more than a mere mark in the instruction stream. It can accept an expression argument like a call to a routine does.
November 11, 2011 Submitted by: The Intel Cilk Plus Development Team
Language Extension Specification V1.1
This document is part of the Intel® Cilk™ Plus Language Specification. The language specification comprises a set of technical specifications describing the language and the run-time support for the language.
July 7, 2011 Submitted by: The Intel Cilk Plus Development Team
Language Extension Specification V0.9
This document defines the Intel® Cilk™ Plus extension to C and C++. The language extension is supported by a run time user mode work stealing task scheduler which is not directly exposed to the application programmer. However, some of the semantics of the language and some of the guarantees provided require specific behavior of the task scheduler.
October 28, 2010 Submitted by: The Intel Cilk Plus Development Team
Application Binary Interface V0.9
Intel Cilk Plus ABI as implemented by Intel® Composer XE 2011.This document describes the Intel® Cilk™ Plus Application Binary Interface, the interface between compiler-generated code and the Intel® Cilk™ Plus runtime. The purpose of this document is to allow a compiler writer to generate code to use the runtime. This interface is version-specific. Previous versions of Cilk have used a different interface and future versions may change the interface.
October 26, 2010 Submitted by: The Intel Cilk Plus Development Team

Runtime Sources

Source for the Intel Cilk Plus runtime. These sources can be used to build the Linux* and OS X* versions of the runtime.

Building the Cilk Plus runtime requires the following prerequisites:

  • autoconf
  • automake
  • A C/C++ compiler that supports the Intel Cilk Plus language extensions; either Intel® Composer XE 2011 SP1 or later (icc command) or the "cilkplus" branch in GCC (gcc command).

Directions on how to build the runtime are in the "readme" file.

Cilk Plus Build 3365

Latest (3-May-2013) Cilk Plus Runtime sources.

Released: May 3, 2013
Cilk Plus Build 2856

Cilk Plus Runtime sources to match the Intel® Composer XE 2013, Update 1 release.

Released: October 23, 2012
Cilk Plus Build 2546

Cilk Plus Runtime sources to match the Intel® Composer XE 2011 SP1, Update 11 release.

Released: June 15, 2012
Cilk Plus Build 1857

Cilk Plus Runtime sources to match the inital GCC release, Intel® Composer XE 2011 SP1, Update 7.

Released: August 15, 2011