CILK(ID:1899/cil003)


Multi-threading parallel language based on ANSI C.

Cilk is designed for general-purpose programming, but it is especially effective for exploiting dynamic highly asynchronous parallelism, which can be difficult to write in data-parallel or message-passing style.

Cilk is an algorithmic multithreaded language. The philosophy behind Cilk is that a programmer should concentrate on structuring the program to expose parallelism and exploit locality, leaving Cilk's runtime system with the responsibility of scheduling the computation to run efficiently on a given platform. Thus, the Cilk runtime system takes care of details like load balancing, paging, and communication protocols. Unlike other multithreaded languages, however, Cilk is algorithmic in that the runtime system guarantees efficient and predictable performance.




Structures:
Related languages
C => CILK   Based on

References:
  • Blumofe, Robert D. and Leiserson, Charles E. "Space-Efficient Scheduling of Multithreaded Computations" view details
          in 25th Annual ACM Symposium on the Theory of Computing (STOC '93) view details
  • Halbherr, Michael; Zhou, Yuli; and Joerg, Christopher F. "MIMD-Style Parallel Programming Based on Continuation-Passing Threads" view details
          in Proc. of 2nd Int. Workshop on Massive Parallelism: Hardware, Software and Applications, October 1994, Capri, Italy view details
  • Cilk: An Efficient Multithreaded Runtime System by Robert D. Blumofe, Christopher F. Joerg, Bradley Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou view details
          in 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming PPOPP '95. July 19-21, 1995, Santa Barbara, California view details
  • Cilk-5.3 Reference Manual Supercomputing Technologies Group, MIT June 2000. view details
          in 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming PPOPP '95. July 19-21, 1995, Santa Barbara, California view details
    Resources