Skip to main content
Log in

Data race: tame the beast

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Data races hamper parallel programming and threaten the reliability of future software. This paper proposes the data race prevention scheme View-Oriented Data race Prevention (VODAP), which can prevent data races in the View-Oriented Parallel Programming (VOPP) model. VOPP is a novel shared-memory data-centric parallel programming model, which uses views to bundle mutual exclusion with data access. We have implemented the data race prevention scheme with a memory protection mechanism. Experimental results show that the extra overhead of memory protection is trivial in our applications. The performance is evaluated and compared with modern programming models such as OpenMP and Cilk.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Ayguadé E, Copty N, Duran A, Hoeflinger J, Lin Y, Massaioli F, Teruel X, Unnikrishnan P, Zhang G (2009) The design of OpenMP tasks. IEEE Trans Parallel Distrib Syst 20(3):404–418

    Article  Google Scholar 

  2. Bender MA, Fineman JT, Gilbert S, Leiserson CE (2004) On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs. In: SPAA04

  3. Bershad NB, Zekauskas JM (1991) Midway: shared memory parallel programming with entry consistency for distributed memory multiprocessors. Tech rep CMU-CS-91-170, Carnegie-Mellon University

  4. Bocchino RL, Adve VS, Adve SV, Snir M (2009) Parallel programming must be deterministic by default. In: First USENIX workshop on hot topics in parallelism (HotPar)

  5. Bocchino RL, Adve VS, Dig D, Adve S, Heumann S, Komuravelli R, Overbey J, Simmons P, Sung H, Vakilian M (2009) A type and effect system for deterministic parallel Java. Tech rep UIUCDCS-R-2009-3032, University of Illinois at Urbana-Champaign

  6. Burcea M, Steffan JG, Amza C (2008) The potential for variable-granularity access tracking for optimistic parallelism. In: The ACM SIGPLAN workshop on memory systems performance and correctness (MSPC’08)

  7. Ceze L, Montesinos P, von Praun C, Torrellas J (2007) Colorama: architectural support for data-centric synchronization. In: HPCA’07

  8. Choi JD, Miller BP, Netzer RHB (1991) Techniques for debugging parallel programs with flowback analysis. ACM Trans Program Lang Syst 13:491–530

    Article  Google Scholar 

  9. Cilk Arts Inc.: Cilk++ 1.0 programmer’s guide. URL http://www.cilk.com

  10. Dining A, Schonberg E (1991) An empirical comparison of monitoring algorithms for access anomaly detection. In: The 2nd ACM SIGPLANS symposium on principles & practice of parallel programming (PPoPP), pp 1–10

  11. Emrath PA, Ghosh S, Padua DA (1991) Event synchronization analysis for debugging parallel programs. In: Supercomputing’91, pp 580–588

  12. Field D, Johnson D, Mize D, Stober R (2007) Scheduling to overcome the multi-core memory bandwidth bottleneck. http://www.platform.com/. URL http://www.platform.com/Products/platform-lsf-family/platform-lsf/multicore_scheduling_whitepaper.pdf

  13. Gropp W, Lusk E, Thakur R (1999) Using MPI: portable parallel programming with the message-passing interface, 2nd edn. MIT Press, Cambridge

    Google Scholar 

  14. Helmbold DP, McDowell CE, Wang JZ (1990) Analyzing traces with anonymous synchronization. In: The 19th international conference on parallel processing (ICPP’90), pp 1170–1177

  15. Hoare CAR (1974) Monitors: an operating system structuring concept. Commun ACM 17(10):549–557

    Article  MATH  Google Scholar 

  16. Huang Z, Chen W (2007) Revisit of view-oriented parallel programming. In: Proc of the seventh IEEE inter symp on cluster computing and the grid, pp 801–810

  17. Huang Z, Chen W, Purvis M, Zheng W (2006) VODCA: view-oriented, distributed, cluster-based approach to parallel computing. In: The 2006 international workshop on DSM (DSM2006), in (CD-ROM) proc of the IEEE/ACM symposium on cluster computing and grid 2006 (CCGrid06). IEEE Computer Society, Singapore

    Google Scholar 

  18. Huang Z, Purvis M, Werstein P (2005) Performance evaluation of view-oriented parallel programming. In: Proceedings of the 2005 international conference on parallel processing (ICPP05). IEEE Computer Society, Oslo, pp 251–258

    Chapter  Google Scholar 

  19. Jung C, Lim D, Lee L, Solinhin Y (2006) Helper thread prefetching for loosely-coupled multiprocessor systems. In: Proc of 20th IEEE inter parallel & distributed processing symp

  20. Karunaratna TC (2005) Nondeterminator-3: a provably good data-race detector that runs in parallel. Master’s thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology

  21. Leiserson CE (1998) A minicourse in multithreaded programming. Tech rep, MIT Laboratory for Computer Science

  22. Leung KC, Huang Z, Huang Q, Werstein P (2009) Maotai 2.0: view-oriented parallel programming with data race prevention. In: PDCAT’09

  23. Lu J et al (2004) Dynamic helper threaded prefetching on the Sun UltraSPARC CMP processor. In: Proc of the 38th annual IEEE/ACM inter symp on microarchitecture, pp 93–104

  24. Mellor-Crummey J (1991) On-the-fly detection of data races for programs with nested fork-join parallelism. In: Supercomputing’91, pp 24–33

  25. Miller BP, Choi JD (1988) A mechanism for efficient debugging of parallel programs. In: Proceedings of the SIGPLAN ’88 conference on programming language design and implementation, vol 23, pp 135–144

  26. Netzer RH, Ghosh S (1992) Efficient race condition detection for shared-memory programs with post/wait synchronization. In: The 21st international conference on parallel processing (ICPP’92)

  27. Nichols B, Buttlar D, Farrell JP (1996) PThreads programming. O’Reilly

  28. OpenMP Architecture Review Board (2008) OpenMP application program interface version 3.0

  29. Pethick M, Liddle M, Werstein P, Huang Z (2003) Parallelization of a backpropagation neural network on a cluster computer. In: International conference on parallel and distributed computing and systems (PDCS 2003)

  30. Reinders J (2007) Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O’Reilly

  31. Savage S, Burrows M, Nelson G, Sobalvarro P, Anderson T (1997) Eraser: a dynamic race detector for multithreaded programs. In: The 16th ACM symposium on operating systems principles (SOSP’97)

  32. Spracklen L, Abraham SG (2005) Chip multithreading: opportunities and challenges. In: Proc of inter symp on high-performance computer architecture, pp 248–252

  33. Sun Microsystems (2006) OpenSPARC T1 microarchitecture specification

  34. Sun Microsystems Inc. JDK 6 documentation

  35. Supercomputing Technologies Group (1998) MIT Laboratory for Computer Science: cilk 5.4.6 reference manual

  36. UPC Consortium (2005) UPC specification, v1.2. Tech rep LBNL-59208, Lawrebce Berkeley National Lab

  37. Vaziri M, Tip F, Dolby J (2006) Associating synchronization constraints with data in an object-oriented language. In: The 33rd annual ACM SIGPLAN symposium on principles of programming languages (POPL’06)

  38. van der Wijngaart RF, Frumkin M (2002) NAS grid benchmarks version 1.0. Tech rep NASA Advanced Supercomputing Division, NASA Ames Research Center

  39. Wilkinson B, Allen M (2005) Parallel programming techniques and applications using networked workstations and parallel computers, 2nd edn. Prentice Hall, New York

    Google Scholar 

  40. Witchel E, Cates J, Asanović K (2002) Mondrian memory protection. In: ASPLOS-X 2002

  41. Zhang J, Huang Z, Chen W, Huang Q, Zheng W (2008) Maotai: view-oriented parallel programming on CMT processors. In: The 37th international conference on parallel processing (ICPP’08)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to K. Leung.

Additional information

Zhiyi Huang was a visiting scientist at the Cilk group of MIT CSAIL while the research was carried out.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Leung, K., Huang, Z., Huang, Q. et al. Data race: tame the beast. J Supercomput 51, 258–278 (2010). https://doi.org/10.1007/s11227-009-0370-x

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-009-0370-x

Navigation