Cilk multithreaded programming language
E679886
C programming language extension
multithreaded programming language
parallel programming language extension
Cilk is a parallel extension to the C programming language designed for efficient multithreaded computation, featuring simple keywords for task parallelism and a work-stealing scheduler for dynamic load balancing.
Statements (46)
| Predicate | Object |
|---|---|
| instanceOf |
C programming language extension
ⓘ
multithreaded programming language ⓘ parallel programming language extension ⓘ |
| basedOn | C NERFINISHED ⓘ |
| designedFor |
multithreaded computation
ⓘ
shared-memory parallelism ⓘ task parallelism ⓘ |
| executionModel | multithreaded computation DAG ⓘ |
| goal |
efficient parallel performance
ⓘ
low programmer overhead for parallelism ⓘ scalable parallel execution ⓘ |
| hasConcept |
DAG of strands
ⓘ
parallel slackness ⓘ span ⓘ work ⓘ |
| hasFeature |
cilk_for loop construct
ⓘ
cilk_spawn construct ⓘ cilk_sync construct ⓘ continuation-stealing scheduling ⓘ deterministic parallel semantics (for race-free programs) ⓘ dynamic load balancing ⓘ fork-join parallelism ⓘ nested parallelism ⓘ provably efficient scheduler model ⓘ spawn keyword ⓘ sync keyword ⓘ work-stealing scheduler ⓘ |
| implements | work-stealing scheduling algorithm ⓘ |
| influenced |
Intel Cilk Plus
NERFINISHED
ⓘ
task parallel libraries in C and C++ ⓘ |
| property |
good load balance under irregular parallelism
ⓘ
low scheduling overhead per task ⓘ programmer expresses logical parallelism ⓘ runtime maps tasks to processors dynamically ⓘ runtime system manages thread scheduling ⓘ supports theoretical performance bounds in terms of work and span ⓘ |
| relatedTo |
Cilk++
NERFINISHED
ⓘ
Intel Cilk Plus NERFINISHED ⓘ |
| schedulingPolicy | randomized work stealing ⓘ |
| supports |
divide-and-conquer algorithms
ⓘ
fine-grained parallelism ⓘ parallel loops ⓘ parallel recursion ⓘ shared-memory multiprocessors ⓘ |
| usedFor |
parallel algorithms research
ⓘ
teaching parallel programming concepts ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.