Efficient, Practical Dynamic Program Analyses for Concurrency Correctness

Man Cao · OhioLink ETD Center (Ohio Library and Information Network) · 2017

Shared-memory parallel programs are notoriously difficult to be both scalable and correct.One of the most problematic concurrency bugs is data race.Data races are difficult to avoid, find, fix, reproduce, and eliminate.A fundamental problem is that language and hardware memory models provide few or no guarantees for executions containing data races.Researchers have developed various program analyses and runtime tools for concurrency correctness properties.Examples includes data race detectors, multithreaded record & replay, transactional memory, and enforcement of stronger memory models.However, in the presence of data races, many of these tools suffer from limitations that impede their widespread use.I am deeply grateful to my advisor, Michael Bond, for all his invaluable help, guidance and support during my doctorate study.I have learned a lot from Mike, not only in the academic aspects of technical expertise and methodology of critical thinking and general problem solving, but also in his wholesome attitude and habits for work and life.I am especially thankful for the travel and career development opportunities that Mike offered.Working with Mike is an exceptional experience in my life, which has shaped me into a competent researcher and engineer, laying an indispensable foundation for my future career and life.I had wonderful experience of interacting and collaborating with professors and researchers inside and outside OSU.I had countless discussions with Milind Kulkarni, who provided insightful feedback and valuable advice on various projects, drafts and presentations.Benjamin Wood has offered inspirational ideas and made significant contributions to several projects, some of which are not included in this dissertation.I thank Atanas Rountev,

Read the paper · More papers on PaperTik