서브메뉴
검색
Data Race Analysis and its Applications
Data Race Analysis and its Applications
상세정보
- 자료유형
- 학위논문 서양
- 최종처리일시
- 20260202105327
- ISBN
- 9798263325312
- DDC
- 658.404
- 저자명
- Jin, Feiyang.
- 서명/저자
- Data Race Analysis and its Applications
- 발행사항
- [Sl] : Georgia Institute of Technology, 2025
- 발행사항
- Ann Arbor : ProQuest Dissertations & Theses, 2025
- 형태사항
- 117 p
- 주기사항
- Source: Dissertations Abstracts International, Volume: 87-05, Section: B.
- 주기사항
- Advisor: Sarkar, Vivek.
- 학위논문주기
- Thesis (Ph.D.)--Georgia Institute of Technology, 2025.
- 초록/해제
- 요약A data race is a troublesome bug frequently found in parallel programs. It occurs when two or more accesses to the same memory location happen concurrently, and at least one of them is a write. Data races are particularly notorious because programs with data races could lead to non-deterministic behaviors, where the program may or may not return the same result on different executions, even with identical inputs. It is difficult for programmers to identify data races given the non-determinism. As a result, even experienced developers often struggle to understand, locate, and fix data races without the aid of specialized tools.To assist programmers in writing correct parallel programs without data races, this dissertation outlines techniques for programmers to analyze data races. First, I studied the fundamentals of task-parallel programs and proved that data-race freedom leads to determinism for certain task-parallel programs. The theoretical result would greatly help programmers become confident in the correctness of their programs. Second, I designed a new dynamic race detection algorithm for task-parallel programs with promises. A promise is a construct that can be used to support arbitrary point-to-point synchronization. The race detection algorithm also applies to programs that use more restricted parallel constructs, as long as those constructs can be implemented using promises. The implementation of the race detector, together with several optimizations introduced, has a comparable slowdown to previous race detectors that do not support promises. Third, I built a tool that visualizes data races found in task-parallel programs. The visualizer consists of a graph builder and a visualization interface. Because most of the previous work only studied the visualization of performance bottlenecks, my tool is the first of its kind to visualize correctness issues detected in parallel programs. I also conducted a performance evaluation and an efficacy research survey to demonstrate the usefulness of the tool. Finally, I designed and implemented a closed-loop application to fix data races with the help of large language model (LLM). The application uses previous fixed data races as few-shot examples and asks ChatGPT to remove data races found in a program. The proposed solution by ChatGPT is checked again to ensure correctness before a new commit is created to notify engineers.
- 일반주제명
- Schedules
- 일반주제명
- Syntax
- 일반주제명
- Design
- 일반주제명
- Determinism
- 일반주제명
- Large language models
- 일반주제명
- Visualization
- 일반주제명
- Chatbots
- 일반주제명
- Semantics
- 기본자료저록
- Dissertations Abstracts International. 87-05B.
- 전자적 위치 및 접속
- 로그인 후 원문을 볼 수 있습니다.
MARC
008260126s2025 us c eng d■001000017360246
■00520260202105327
■006m o d
■007cr#unu||||||||
■020 ▼a9798263325312
■035 ▼a(MiAaPQ)AAI32307893
■035 ▼a(MiAaPQ)GeorgiaTech78663
■040 ▼aMiAaPQ▼cMiAaPQ
■0820 ▼a658.404
■1001 ▼aJin, Feiyang.
■24510▼aData Race Analysis and its Applications
■260 ▼a[Sl]▼bGeorgia Institute of Technology▼c2025
■260 1▼aAnn Arbor▼bProQuest Dissertations & Theses▼c2025
■300 ▼a117 p
■500 ▼aSource: Dissertations Abstracts International, Volume: 87-05, Section: B.
■500 ▼aAdvisor: Sarkar, Vivek.
■5021 ▼aThesis (Ph.D.)--Georgia Institute of Technology, 2025.
■520 ▼aA data race is a troublesome bug frequently found in parallel programs. It occurs when two or more accesses to the same memory location happen concurrently, and at least one of them is a write. Data races are particularly notorious because programs with data races could lead to non-deterministic behaviors, where the program may or may not return the same result on different executions, even with identical inputs. It is difficult for programmers to identify data races given the non-determinism. As a result, even experienced developers often struggle to understand, locate, and fix data races without the aid of specialized tools.To assist programmers in writing correct parallel programs without data races, this dissertation outlines techniques for programmers to analyze data races. First, I studied the fundamentals of task-parallel programs and proved that data-race freedom leads to determinism for certain task-parallel programs. The theoretical result would greatly help programmers become confident in the correctness of their programs. Second, I designed a new dynamic race detection algorithm for task-parallel programs with promises. A promise is a construct that can be used to support arbitrary point-to-point synchronization. The race detection algorithm also applies to programs that use more restricted parallel constructs, as long as those constructs can be implemented using promises. The implementation of the race detector, together with several optimizations introduced, has a comparable slowdown to previous race detectors that do not support promises. Third, I built a tool that visualizes data races found in task-parallel programs. The visualizer consists of a graph builder and a visualization interface. Because most of the previous work only studied the visualization of performance bottlenecks, my tool is the first of its kind to visualize correctness issues detected in parallel programs. I also conducted a performance evaluation and an efficacy research survey to demonstrate the usefulness of the tool. Finally, I designed and implemented a closed-loop application to fix data races with the help of large language model (LLM). The application uses previous fixed data races as few-shot examples and asks ChatGPT to remove data races found in a program. The proposed solution by ChatGPT is checked again to ensure correctness before a new commit is created to notify engineers.
■590 ▼aSchool code: 0078.
■650 4▼aSchedules
■650 4▼aSyntax
■650 4▼aDesign
■650 4▼aDeterminism
■650 4▼aLarge language models
■650 4▼aVisualization
■650 4▼aChatbots
■650 4▼aSemantics
■690 ▼a0389
■690 ▼a0800
■71020▼aGeorgia Institute of Technology.
■7730 ▼tDissertations Abstracts International▼g87-05B.
■790 ▼a0078
■791 ▼aPh.D.
■792 ▼a2025
■793 ▼aEnglish
■85640▼uhttp://www.riss.kr/pdu/ddodLink.do?id=T17360246▼nKERIS▼z이 자료의 원문은 한국교육학술정보원에서 제공합니다.


