Synonyms
Definition
The Nondeterminator race detector takes as input an ostensibly deterministic Cilk program and an input data set and makes the following guarantee: it will either determine at least one location in the program that is subject to a determinacy race when the program is run on the data set, or else it will certify that the program always behaves the same on the data set, no matter how it is scheduled. The Cilkscreen race detector does much the same thing for Cilk++ programs. Both can also detect data races, but the guarantee is somewhat weaker.
Discussion
Introduction
Many Cilk programs are intended to be deterministic, in that a given program produces the same behavior no matter how it is scheduled. The program may behave nondeterministically, however, if a determinacy raceoccurs: two logically parallel instructions update the same location, where at least one of the two instructions writes the location. In this case, different runs of the...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Appelbe WF, McDowell CE (1985) Anomaly reporting: a tool for debugging and developing parallel numerical algorithms. In: Proceedings of the 1st international conference on supercomputing systems. IEEE, pp 386–391
Balasundaram V, Kennedy K (1986) Compile-time detection of race conditions in a parallel program. In: Proceedings of the 3rd international conference on supercomputing, ACM Press, New York, pp 175–185
Bender MA, Cole R, Demaine ED, Farach-Colton M, Zito J (2002) Two simplified algorithms for maintaining order in a list. In: Proceedings of the European syposium on algorithms, pp 152–164
Bender MA, Fineman JT, Gilbert S, Leiserson CE (2004) On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs. In: Proceedings of the sixteenth annual ACM symposium on parallel algorithms and architectures, Barcelona, Spain, June 2004, pp 133–144
Bruening D (2004) Efficient, transparent, and comprehensive runtime code manipulation. Ph.D. thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology
Callahan D, Sublok J (1988) Static analysis of low-level synchronization. In: Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on parallel and distributed debugging, ACM Press, New York, pp 100–111
Cheng G-I, Feng M, Leiserson CE, Randall KH, Stark AF (1988) Detecting data races in Cilk programs that use locks. In: Proceedings of the ACM symposium on parallel algorithms and architectures, June 1998, pp 298–309
Choi J-D, Miller BP, Netzer RHB (1991) Techniques for debugging parallel programs with flowback analysis. ACM Trans Program Lang Syst 13(4):491–530
Cormen TH, Leiserson CE, Rivest RL, Stein C (2009) Introduction to algorithms, 3rd edn. MIT Press, Cambridge
Dietz PF (1982) Maintaining order in a linked list. In: Proceedings of the ACM symposium on the theory of computing, May 1982, pp 122–127
Dietz PF, Sleator DD (1987) Two algorithms for maintaining order in a list. In: Proceedings of the ACM symposium on the theory of computing, May 1987, pp 365–372
Dinning A, Schonberg E (1990) An empirical comparison of monitoring algorithms for access anomaly detection. In: Proceedings of the ACM SIGPLAN symposium on principles and practice of parallel programming, pp 1–10
Dinning A, Schonberg E (1991) Detecting access anomalies in programs with critical sections. In: Proceedings of the ACM/ONR workshop on parallel and distributed debugging, May 1991, ACM Press, pp 85–96
Emrath PA, Ghosh S, Padua DA (1989) Event synchronization analysis for debugging parallel programs. In: Proceedings of the 1989 ACM/IEEE conference on supercomputing, November 1989, pp 580–588
Emrath PA, Padua DA (1988) Automatic detection of nondeterminacy in parallel programs. In: Proceedings of the workshop on parallel and distributed debugging, Madison, Wisconsin, May 1988, pp 89–99
Feng M, Leiserson CE (1997) Efficient detection of determinacy races in Cilk programs. In: Proceedings of the ACM symposium on parallel algorithms and architectures, June 1997, pp 1–11
Fineman JT (2005) Provably good race detection that runs in parallel. Master’s thesis, Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science, August 2005
Frigo M, Halpern P, Leiserson CE, Lewin-Berlin S (2009) Reducers and other cilk + + hyperobjects. In: Proceedings of the twenty-first annual symposium on parallelism in algorithms and architectures, pp 79–90
Frigo M, Leiserson CE, Randall KH (1998) The implementation of the Cilk-5 multithreaded language. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 212–223
Gabow HN, Tarjan RE (1985) A linear-time algorithm for a special case of disjoint set union. J Comput System Sci 30(2): 209–221
Helmbold DP, McDowell CE, Wang J-Z (1990) Analyzing traces with anonymous synchronization. In: Proceedings of the 1990 international conference on parallel processing, August 1990. pp II70–II77
Steele GL Jr (1990) Making asynchronous parallelism safe for the world. In: Proceedings of the seventeenth annual ACM symposium on principles of programming languages, ACM Press, pp 218–231
Luk C-K, Cohn R, Muth R, Patil H, Klauser A, Lowney G, Wallace S, Reddi VJ, Hazelwood K (2005) Pin: building customized program analysis tools with dynamic instrumentation. In: Proceedings of the 2005 ACM SIGPLAN conference on programming language design and implementation, ACM Press, New York, pp 190–200
Mellor-Crummey J (1991) On-the-fly detection of data races for programs with nested fork-join parallelism. In: Proceedings of supercomputing, pp 24–33
Mellor-Crummey J (1993) Compile-time support for efficient data race detection in shared-memory parallel programs. In: Proceedings of the ACM/ONR workshop on parallel and distributed debugging, San Diego, California, May 1993. ACM Press, pp 129–139
Miller BP, Choi J-D (1988) A mechanism for efficient debugging of parallel programs. In: Proceedings of the 1988 ACM SIGPLAN conference on programming language design and implementation, Atlanta, Georgia, June 1988, pp 135–144
Nethercote N, Seward J (2007) Valgrind: A framework for heavyweight dynamic binary instrumentation. In: Proceedings of the ACM SIGPLAN 2007 conference on programming language design and implementaion, ACM, San Diego, June 2007, pp 89–100
Netzer RHB, Ghosh S (1992) Efficient race condition detection for shared-memory programs with post/wait synchronization. In: Proceedings of the 1992 international conference on parallel processing, St. Charles, Illinois, August 1992
Netzer RHB, Miller BP (1990) On the complexity of event ordering for shared-memory parallel program executions. In: Proceedings of the 1990 international conference on parallel processing, August 1990. pp II:93–97
Netzer RHB, Miller BP (1991) Improving the accuracy of data race detection. In: Proceedings of the third ACM SIGPLAN symposium on principles and practice of parallel programming, New York, NY, USA. ACM Press, pp 133–144
Netzer RHB, Miller BP (1992) What are race conditions? ACM Lett Program Lang Syst 1(1):74–88
Nudler I, Rudolph L (1986) Tools for the efficient development of efficient parallel programs. In: Proceedings of the first Israeli conference on computer systems engineering, May 1986
Savage S, Burrows M, Nelson G, Sobalvarro P, Anderson T (1997) Eraser: a dynamic race detector for multi-threaded programs. In: Proceedings of the sixteenth ACM symposium on operating systems principles (SOSP), ACM Press, New York, pp 27–37
Tarjan RE (1975) Efficiency of a good but not linear set union algorithm. J ACM 22(2):215–225
Tarjan RE (1983) Data structures and network algorithms. Society for Industrial and Applied Mathematics, Philadelphia
Taylor RN (1983) A general-purpose algorithm for analyzing concurrent programs. Commun ACM 26(5):361–376
Tsakalidis AK (1984) Maintaining order in a generalized linked list. Acta Inform 21(1):101–112
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Fineman, J.T., Leiserson, C.E. (2011). Race Detectors for Cilk and Cilk++ Programs. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_494
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_494
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering