Font Size: a A A

Research On Static Data Race Detection And Deterministic Replay Of Multi-core Programs

Posted on:2014-12-02Degree:MasterType:Thesis
Country:ChinaCandidate:C LiFull Text:PDF
GTID:2268330422950618Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Today the microelectronic technology is developing rapidly, and on-chip multi-core processors are also getting much more widely used. Multi-core programming isthe most effective way that can help on-chip multi-core processors make full use ofit’s performance. However, the non-determinism of multi-core programs makes itdifficult for multi-core programming and debugging. Thus, it is of significance tostudy on the impact brought by multi-core programs’ non-determinism to multi-coresystems, to find out a way to remove non-determinism of multi-core programs and toput forward a deterministic replay mechanism for multi-core programs.In recent decades, non-determinism of multi-core programs has attracted a largenumber of researchers from different universities and institutions in this filed, andthey have obtained some achievements on research. At the moment, there are fourways to solve the non-determinism of multi-core programs. Firstly, develop alanguage which supports deterministic parallel programming or expand existingserial languages. Secondly, take a measure to make it possible for multi-coreprograms’ deterministic replay. Thirdly, detect memory accesses at compile time andinsert deterministic constraints. Lastly, add some new hardware to the processor orchange original structure of the processor and solve this problem in the level ofcomputer architecture. In this paper, we mainly research on the main cause of multi-core programs’ non-determinism, data race, and solve this problem in the level ofapplication.We take programming and debugging into consideration, and present amechanism for multi-core programming and debugging based on multi-coreprograms’ static data race detection and deterministic replay. At programming time,check data race in the program with static data race detection technology, and helpthe programmer modify and improve the program. While at debugging time,dynamically instrument the program, and determinately replay the programaccording to logs written in the first running. In this paper, we use Locksmith as thestatic data race detector and use PinPlay as the replayer. Moreover, we present anoptimized method for Locksmith to reduce the false data race by detecting arraycross-range and to reduce the positive of data race.In the end, we build the experimental platform, and test Locksmith before andafter optimization, the optimized method reduces the false positive of data race inmulti-core programs without lost to data race and it increases the accuracy. Inaddition, we simulate the process of recording and replaying of PinPlay, according tothe experiments, we find that the detection process takes much more less time than that of the replaying process. It implies the importance of detecting data race atprogramming time. It can decrease the time took on debugging. If we check theprogram at programming time, we can avoid the happening of data race efficiently. Itwill greatly reduce the difficulty of multi-core programs’ debugging, and it verifiesthat our mechanism is feasible.
Keywords/Search Tags:multi-core, data race, deterministic, static detection, replay
PDF Full Text Request
Related items