Cilk: An efficient multithreaded runtime system

被引:272
作者
Blumofe, RD [1 ]
Joerg, CF [1 ]
Kuszmaul, BC [1 ]
Leiserson, CE [1 ]
Randall, KH [1 ]
Zhou, YL [1 ]
机构
[1] MIT, COMP SCI LAB, CAMBRIDGE, MA 02139 USA
关键词
D O I
10.1006/jpdc.1996.0107
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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 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, The Cilk runtime system currently runs on the Connection Machine CM5 MPP, the Intel Paragon MPP, the Sun Sparcstation SMP, and the Cilk-NOW network of workstations. Applications written in Cilk include protein folding, graphic rendering, backtrack search, and the star Socrates chess program, which won second prize in the 1995 ICCA World Computer Chess Championship. (C) 1996 Academic Press, Inc.
引用
收藏
页码:55 / 69
页数:15
相关论文
共 44 条
[1]  
ANDERSON TE, 1991, 13TH P ACM S OP SYST, P95
[2]  
BLELLOCH GE, 1992, P 1992 DARTM I ADV G, P11
[3]   Scheduling multithreaded computations by work stealing [J].
Blumofe, RD ;
Leiserson, CE .
JOURNAL OF THE ACM, 1999, 46 (05) :720-748
[4]  
Blumofe R. D., 1994, Proceedings of the Third IEEE International Symposium on High Performance Distributed Computing (Cat. No.94TH0667-6), P96, DOI 10.1109/HPDC.1994.340255
[5]  
Blumofe R. D., 1995, THESIS MIT
[6]   PARALLEL EVALUATION OF GENERAL ARITHMETIC EXPRESSIONS [J].
BRENT, RP .
JOURNAL OF THE ACM, 1974, 21 (02) :201-206
[7]  
BREWER EA, IN PRESS MULTILAYER
[8]  
BURTON FW, 1981, P 1981 C FUNCT PROGR, P187, DOI DOI 10.1145/800223.806778
[9]  
CARLISLE MC, 1993, P 6 ANN WORKSH LANG
[10]   COOL - AN OBJECT-BASED LANGUAGE FOR PARALLEL PROGRAMMING [J].
CHANDRA, R ;
GUPTA, A ;
HENNESSY, JL .
COMPUTER, 1994, 27 (08) :13-26