dc.creator | Davis, Matthew James | |
dc.creator | Theriot, Dylan | |
dc.date.accessioned | 2021-07-24T00:31:36Z | |
dc.date.available | 2021-07-24T00:31:36Z | |
dc.date.created | 2022-05 | |
dc.date.submitted | May 2022 | |
dc.identifier.uri | https://hdl.handle.net/1969.1/194411 | |
dc.description.abstract | Data races are a type of bug in concurrent programming which can result in unexpected program behavior. When multiple threads modify the same memory location in parallel, a data race occurs. Detecting these races is a difficult problem that becomes unrealistic for a programmer to perform at a large scale. Thus, automated data race detection has a large importance on fixing and verifying the correctness of parallel program behavior. There are two main types of data race detection: static and dynamic. Each analysis has its own set of limitations, and tools utilizing one type of analysis suffer from these drawbacks. We present Dynamatic, a hybrid race analysis tool which builds off of HPCRace for static analysis and Google’s Thread Sanitizer for dynamic analysis. Dynamatic performs analysis on C++ and Fortran code that is compiled down to LLVM’s IR. In particular, Dynamatic analyzes programs utilizing the OpenMP API for parallelization. The tool is able to leverage the best elements of both types of analysis - the level of coverage that static tools provide, and the low false positive rates of dynamic tools. Thus, the tool is able to mitigate these drawbacks 2
through its hybrid approach and analysis optimizations. Dynamatic efficiently and accurately
detects data races in OpenMP programs and is competitive with tools such as Archer and ROMP
on benchmarks. | en |
dc.format.mimetype | application/pdf | |
dc.subject | Data Race | en |
dc.subject | Program Analysis | en |
dc.subject | OpenMP | en |
dc.subject | TSAN | en |
dc.subject | LLVM | en |
dc.subject | HPC | en |
dc.subject | Dynamic Analysis | en |
dc.subject | Static Analysis | en |
dc.subject | HPCRace | en |
dc.title | Dynamatic: An OpenMP Race Detection Tool Combining Static and Dynamic Analysis | en |
dc.type | Thesis | en |
thesis.degree.department | Computer Science and Engineering | en |
thesis.degree.discipline | Computer Science | en |
thesis.degree.grantor | Undergraduate Research Scholars Program | en |
thesis.degree.name | B.S. | en |
thesis.degree.level | Undergraduate | en |
dc.contributor.committeeMember | Huang, Jeff | |
dc.type.material | text | en |
dc.date.updated | 2021-07-24T00:31:36Z | |