The philosophy behind Cilk is that a programmer should concentrate on structuring his program to expose concurrency and exploit locality, leaving the runtime system with the responsibility of scheduling the computation to run efficiently on a given platform. Cilk's runtime system takes care of details like load balancing and communication protocols. Unlike other multithreaded languages, however, Cilk is algorithmic in that the runtime system's scheduler guarantees provably efficient and predictable quality of service.
Parallel processors are now commodity products.
In the next few years, parallel computers will appear as ordinary desktop and laptop machines. But, programming applications is expensive and hard, requiring elaborate communication protocols to be programmed. Cilk offers a simple but efficient programming environment for these platforms that naturally extends the existing serial programming environment, obviating the need for applications programmers to support two separate implementations for serial and parallel platforms. Moreover, since Cilk programs are adaptively parallel, this environment can be lifted into the more demanding metacomputer environments, such as distributed clusters of multiprocessors. Cilk extends C with only 5 new keywords and no new data structures.