1995 · 1K citations · 35 references
ComputingComputer ScienceComputer SystemsParallel ComputingProgramming LanguagesSchedulingCommunication OverheadConcurrent ProgrammingCpu SchedulingParallel Computing SystemsParallel Performance AnalysisParallel Runtime SystemsCritical Path SchedulingLoad Balancing ModelsParallel ProgrammingParallel SchedulingRuntime SchedulingRuntime System ArchitectureWork StealingWork-stealing Scheduling
Cilk (pronounced “silk”) is a C-based runtime system for multi-threaded 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” of a Cilk computation can be used to accurately model performance. Consequently, a Cilk programmer can focus on reducing the work and critical path of his computation, insulated from load balancing and other runtime scheduling issues. We also prove that for the class of “fully strict” (well-structured) programs, the Cilk scheduler achieves space, time and communication bounds all within a constant factor of optimal.
35
Bounds on Multiprocessing Timing Anomalies
Ron Graham · SIAM Journal on Applied Mathematics · 1969 · 2.4K citations
Bounds for Certain Multiprocessing Anomalies
Ronald Graham · Bell System Technical Journal · 1966 · 1.6K citations