1996
DOI: 10.1006/jpdc.1996.0107
|View full text |Cite
|
Sign up to set email alerts
|

Cilk: An Efficient Multithreaded Runtime System

Abstract: Cilk (pronounced "silk") is a C-based runtime system for multithreaded parallel programming. In this paper, we document the efficiency of the Cilk work-stealing scheduler, both empirically and analytically. We show that on real and synthetic applications, the "work" and "critical-path length" of a Cilk computation can be used to model performance accurately. Consequently, a Cilk programmer can focus on reducing the computation' s work and critical-path length, insulated from load balancing and other runtime sc… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
924
0
11

Year Published

1997
1997
2010
2010

Publication Types

Select...
5
4

Relationship

0
9

Authors

Journals

citations
Cited by 922 publications
(942 citation statements)
references
References 32 publications
0
924
0
11
Order By: Relevance
“…Dongarra et al proposed dynamic schedulers optimized for some linear algebra problems on general-purpose multicore processors [17]. Scheduling techniques have been proposed by several emerging programming systems such as Cilk [5], Intel Threading Building Blocks (TBB) [9], OpenMP [14], Charm++ [6] and MPI microtasking [13], etc. All these systems rely on a set of extensions to common imperative programming languages, and involve a compilation stage and runtime libraries.…”
Section: Background and Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Dongarra et al proposed dynamic schedulers optimized for some linear algebra problems on general-purpose multicore processors [17]. Scheduling techniques have been proposed by several emerging programming systems such as Cilk [5], Intel Threading Building Blocks (TBB) [9], OpenMP [14], Charm++ [6] and MPI microtasking [13], etc. All these systems rely on a set of extensions to common imperative programming languages, and involve a compilation stage and runtime libraries.…”
Section: Background and Related Workmentioning
confidence: 99%
“…To compare the performance of the proposed method, we performed DAG structured computations using Charm++ [6] Cilk [5] and OpenMP [14]. In addition, we implemented three typical schedulers called Cent ded, Dist shared and Steal, respectively.…”
Section: Baselinementioning
confidence: 99%
“…Of particular relevance to our work are lightweight runtimes for task parallelism such as Cilk [13], OpenMP [4] and Intel's Thread Building Blocks (TBB) [3]. These runtimes employ modern work-stealing scheduler designs similar to our own, but do not provide primitives suitable for implementing process-oriented designs.…”
Section: Related Workmentioning
confidence: 99%
“…We use initial rough estimation of the combined computational power of each cluster involved in the computation (based on CPU clock speed) for the weighted partitioning of the work-pool and initial assignment of work. However, this is a rough "guess" estimation, which is adjusted at runtime using a combination of master/worker and work-stealing [6,7] methods. Each master has a copy of the global work-pool, which are identical in the beginning of the computation.…”
Section: Multi-level Dynamic Loadmentioning
confidence: 99%