Skip to main content

Algorithmic analysis of multithreaded algorithms

  • Invited Presentation
  • Conference paper
  • First Online:
Algorithms and Computation (ISAAC 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1350))

Included in the following conference series:

  • 139 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Author information

Authors and Affiliations

Authors

Editor information

Hon Wai Leong Hiroshi Imai Sanjay Jain

Rights and permissions

Reprints 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

Publish with us

Policies and ethics