Zhendong Wu, Kai Lu, Xiaoping Wang, Xu Zhou, Chen Chen
{"title":"PFinder: Efficiently detecting bugs in concurrent programs through parallelizing race verification","authors":"Zhendong Wu, Kai Lu, Xiaoping Wang, Xu Zhou, Chen Chen","doi":"10.1109/ICCES.2014.7030948","DOIUrl":null,"url":null,"abstract":"Races hidden in concurrent programs can lead to harmful bugs. These bugs are difficult to detect due to their non-deterministic characteristics. Previous work has tried to dynamically verify races in actual executions to check whether they would lead to failures. However, it is inefficient to verify all the races to find the harmful bugs if there are a large number of races. To improve the efficiency, PFinder is the first technique that uses a parallel method to verify multiple races on multiple machines simultaneously. We have implemented PFinder as a prototype tool and have experimented on a number of real-world concurrent programs. All the known bugs in known benchmarks are detected. Also, PFinder could scale well as the number of machines increases. Additionally, the speedup of PFinder can be increased linearly with the number of machines.","PeriodicalId":339697,"journal":{"name":"2014 9th International Conference on Computer Engineering & Systems (ICCES)","volume":"104 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2014 9th International Conference on Computer Engineering & Systems (ICCES)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICCES.2014.7030948","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Races hidden in concurrent programs can lead to harmful bugs. These bugs are difficult to detect due to their non-deterministic characteristics. Previous work has tried to dynamically verify races in actual executions to check whether they would lead to failures. However, it is inefficient to verify all the races to find the harmful bugs if there are a large number of races. To improve the efficiency, PFinder is the first technique that uses a parallel method to verify multiple races on multiple machines simultaneously. We have implemented PFinder as a prototype tool and have experimented on a number of real-world concurrent programs. All the known bugs in known benchmarks are detected. Also, PFinder could scale well as the number of machines increases. Additionally, the speedup of PFinder can be increased linearly with the number of machines.