To multithread an application without Cilk++, software developers must drastically restructure their code. With Cilk++, existing applications need not be rewritten or restructured to take advantage of multiple processors. Cilk++ programmers continue to write serial code in familiar C++, then simply add a handful of keywords to identify parallelism in an application. Cilk++ can be learned in days, and maximizes programmer productivity. Cilk++ functions work seamlessly with non-Cilk++ code. Cilk is a no-risk solution: simply remove ("ifdef out") the Cilk keywords to return your application to its original form.
The following example, which shows the familiar recursive Quicksort algorithm, illustrates the simplicity of writing parallel programs in Cilk++. Recursive calls are executed in parallel through the addition of two Cilk++ keywords.