Zhendong Wu, Kai Lu, Xiaoping Wang, Xu Zhou, Chen Chen
{"title":"PFinder:通过并行竞争验证有效地检测并发程序中的错误","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":"{\"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}","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}
PFinder: Efficiently detecting bugs in concurrent programs through parallelizing race verification
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.