Thesis
Detection of bugs in MPI programs using a hybrid approach
Washington State University
Master of Science (MS), Washington State University
12/2020
DOI:
https://doi.org/10.7273/000004178
Handle:
https://hdl.handle.net/2376/125128
Abstract
MPI bugs are difficult to diagnose and fix. Traditional approaches for diagnosing MPI bugs attempt to reproduce the exact execution schedule which reveals the bug, resulting in high run-time overhead. In this thesis, we present our work in identifying bugs in MPI programs using a hybrid approach that leverages both static and dynamic analysis. The static approach is based on the LLVM IR (Intermediate Representation) file that we generate using the LLVM compiler [1]. Once we retrieve the LLVM IR we then parse the IR to gather information to trace the buggy code regions. For the dynamic analysis we have two approaches (Machine Learning-based approach and Rule-based approach). For the machine learning-based approach, we observed that resource access and consumption patterns are critical indications of the run-time behavior of concurrent software, and can be used as a powerful mechanism to guide the software debugging process. In our process to build a dynamic approach we first monitored the resource footprints at run-time and found that it can effectively help detect software bugs. Specifically, for MPI programs, a simple SVM classifier can detect deadlocks with high accuracy using only the CPU usage patterns. Therefore, in our dynamic analysis, we explore ways to detect bugs using resource consumption patterns. Whereas, for the rule-based approach we do the run-time analysis of each of the children's functions and the main function as well, by the aid of the profiling tool in-order to understand the measure performance bugs. For this approach we take user-defined rules such as how much time a particular function is to run for (lower bound and upper bound) and how many times it should be called, and based on this rules, we compare the rules with the actual run-time and give result whether the rules passed or fail. To evaluate our approach, we have carried out experiments to detect various bugs in different benchmarks such as CombBLAS, OpenFFT, and NAS Parallel benchmarks [2-4]. We were able to detect both the deadlock [5-8] and performance bugs [9-13] using our approach.
Metrics
11 File views/ downloads
57 Record Views
Details
- Title
- Detection of bugs in MPI programs using a hybrid approach
- Creators
- Sonam Sherpa
- Contributors
- Xinghui Zhao (Advisor) - Washington State University, Engineering and Computer Science (VANC), School of
- Awarding Institution
- Washington State University
- Academic Unit
- Engineering and Computer Science (VANC), School of
- Theses and Dissertations
- Master of Science (MS), Washington State University
- Publisher
- Washington State University
- Identifiers
- 99900896441101842
- Language
- English
- Resource Type
- Thesis