Skip to main content

Parallel data race detection for task parallel programs with locks

Author(s): Yoga, Adarsh; Nagarakatte, Santosh; Gupta, Aarti

Download
To refer to this page use: http://arks.princeton.edu/ark:/88435/pr1gr9m
Full metadata record
DC FieldValueLanguage
dc.contributor.authorYoga, Adarsh-
dc.contributor.authorNagarakatte, Santosh-
dc.contributor.authorGupta, Aarti-
dc.date.accessioned2021-10-08T19:48:26Z-
dc.date.available2021-10-08T19:48:26Z-
dc.date.issued2016en_US
dc.identifier.citationYoga, Adarsh, Santosh Nagarakatte, and Aarti Gupta. "Parallel data race detection for task parallel programs with locks." In ACM SIGSOFT International Symposium on Foundations of Software Engineering (2016): pp. 833-845. doi:10.1145/2950290.2950329en_US
dc.identifier.urihttps://www.cs.rutgers.edu/~sn349/papers/ptracer-fse2016.pdf-
dc.identifier.urihttp://arks.princeton.edu/ark:/88435/pr1gr9m-
dc.description.abstractProgramming with tasks is a promising approach to write performance portable parallel code. In this model, the programmer explicitly specifies tasks and the task parallel runtime employs work stealing to distribute tasks among threads. Similar to multithreaded programs, task parallel programs can also exhibit data races. Unfortunately, prior data race detectors for task parallel programs either run the program serially or do not handle locks, and/or detect races only in the schedule observed by the analysis. This paper proposes PTRacer, a parallel on-the-fly data race detector for task parallel programs that use locks. PTRacer detects data races not only in the observed schedule but also those that can happen in other schedules (which are permutations of the memory operations in the observed schedule) for a given input. It accomplishes the above goal by leveraging the dynamic execution graph of a task parallel execution to determine whether two accesses can happen in parallel and by maintaining constant amount of access history metadata with each distinct set of locks held for each shared memory location. To detect data races (beyond the observed schedule) in programs with branches sensitive to scheduling decisions, we propose static compiler instrumentation that records memory accesses that will be executed in the other path with simple branches. PTRacer has performance overheads similar to the state-of-the-art race detector for task parallel programs, SPD3, while detecting more races in programs with locks.en_US
dc.format.extent833 - 845en_US
dc.language.isoen_USen_US
dc.relation.ispartofACM SIGSOFT International Symposium on Foundations of Software Engineeringen_US
dc.rightsAuthor's manuscripten_US
dc.titleParallel data race detection for task parallel programs with locksen_US
dc.typeConference Articleen_US
dc.identifier.doi10.1145/2950290.2950329-
pu.type.symplectichttp://www.symplectic.co.uk/publications/atom-terms/1.0/conference-proceedingen_US

Files in This Item:
File Description SizeFormat 
ParallelDataRaceTaskParallelProgramsLocks.pdf494.37 kBAdobe PDFView/Download


Items in OAR@Princeton are protected by copyright, with all rights reserved, unless otherwise indicated.