Abstract
Cilk is a parallel programming language that allows programmers to write multithreaded parallel programs that use computational resources predictably and efficiently. The Cilk language allows programmers to specify the interactions among computational threads in a high-level fashion, and then Cilk's runtime system maps the computation onto available physical resources dynamically in a provably efficient fashion. The performance of a Cilk program is mathematically guaranteed to scale up linearly with the number of processors, as long as the application has sufficient parallelism and the architecture sufficient communication bandwidth. Moreover, Cilk is efficient: a parallel Cilk program “scales down” to run on a single processor with nearly the same efficiency as comparable C code, thereby removing a major barrier to parallel programming.
Cilk provides a theoretical performance model based on “Brent's theorem.” Using the measures of work, critical-path length, and serial space, a programmer can extrapolate the performance of his program to any number of processors. Moreover, divide-and-conquer-parallel algorithms can be analyzed in much the same way one analyzes divide-and-conquer serial algorithms in a college algorithms class. Multithreaded algorithms to solve such problems as matrix multiplication, Cholesky factorization, and sorting can all be analyzed and competing algorithms compared within Cilk's analytical framework.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Leiserson, C.E. (1997). Algorithmic analysis of multithreaded algorithms. In: Leong, H.W., Imai, H., Jain, S. (eds) Algorithms and Computation. ISAAC 1997. Lecture Notes in Computer Science, vol 1350. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63890-3_15
Download citation
DOI: https://doi.org/10.1007/3-540-63890-3_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63890-2
Online ISBN: 978-3-540-69662-9
eBook Packages: Springer Book Archive