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.
Similar content being viewed by others
References
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
Bender MA, Fineman JT, Gilbert S, Leiserson CE (2004) On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs. In: SPAA04
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
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)
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
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)
Ceze L, Montesinos P, von Praun C, Torrellas J (2007) Colorama: architectural support for data-centric synchronization. In: HPCA’07
Choi JD, Miller BP, Netzer RHB (1991) Techniques for debugging parallel programs with flowback analysis. ACM Trans Program Lang Syst 13:491–530
Cilk Arts Inc.: Cilk++ 1.0 programmer’s guide. URL http://www.cilk.com
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
Emrath PA, Ghosh S, Padua DA (1991) Event synchronization analysis for debugging parallel programs. In: Supercomputing’91, pp 580–588
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
Gropp W, Lusk E, Thakur R (1999) Using MPI: portable parallel programming with the message-passing interface, 2nd edn. MIT Press, Cambridge
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
Hoare CAR (1974) Monitors: an operating system structuring concept. Commun ACM 17(10):549–557
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
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
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
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
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
Leiserson CE (1998) A minicourse in multithreaded programming. Tech rep, MIT Laboratory for Computer Science
Leung KC, Huang Z, Huang Q, Werstein P (2009) Maotai 2.0: view-oriented parallel programming with data race prevention. In: PDCAT’09
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
Mellor-Crummey J (1991) On-the-fly detection of data races for programs with nested fork-join parallelism. In: Supercomputing’91, pp 24–33
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
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)
Nichols B, Buttlar D, Farrell JP (1996) PThreads programming. O’Reilly
OpenMP Architecture Review Board (2008) OpenMP application program interface version 3.0
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)
Reinders J (2007) Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O’Reilly
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)
Spracklen L, Abraham SG (2005) Chip multithreading: opportunities and challenges. In: Proc of inter symp on high-performance computer architecture, pp 248–252
Sun Microsystems (2006) OpenSPARC T1 microarchitecture specification
Sun Microsystems Inc. JDK 6 documentation
Supercomputing Technologies Group (1998) MIT Laboratory for Computer Science: cilk 5.4.6 reference manual
UPC Consortium (2005) UPC specification, v1.2. Tech rep LBNL-59208, Lawrebce Berkeley National Lab
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)
van der Wijngaart RF, Frumkin M (2002) NAS grid benchmarks version 1.0. Tech rep NASA Advanced Supercomputing Division, NASA Ames Research Center
Wilkinson B, Allen M (2005) Parallel programming techniques and applications using networked workstations and parallel computers, 2nd edn. Prentice Hall, New York
Witchel E, Cates J, Asanović K (2002) Mondrian memory protection. In: ASPLOS-X 2002
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)
Author information
Authors and Affiliations
Corresponding author
Additional information
Zhiyi Huang was a visiting scientist at the Cilk group of MIT CSAIL while the research was carried out.
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-009-0370-x