arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2009.02775cs.PL
收藏

一种线程局部语义与无竞争程序的高效静态分析

A Thread-Local Semantics and Efficient Static Analyses for Race Free Programs

Suvam Mukherjee, Oded Padon, Sharon Shoham, Deepak D'Souza, Noam Rinetzky

摘要:

无数据竞争程序是一类重要的并发程序。在本文中,我们提供了一个框架,设计和证明的正确性数据流分析,针对这一类的程序。这些分析与早期文献中提出的“同步-CFG”分析具有相同的精神。为了实现这一点,我们首先提出了一种新的具体语义DRF程序,称为L-DRF,这是线程本地的性质-每个线程操作自己的副本的数据状态。我们表明,我们的语义抽象,使我们能够减少DRF程序的分析,顺序分析。这有助于将现有的顺序分析快速移植到DRF程序的合理和可扩展的分析中。接下来,我们将L-DRF参数化,将程序变量划分为原子访问的“区域”。区域参数化语义的抽象产生更精确的分析“区域种族”自由并发程序。我们实例化这些抽象设计高效的关系分析种族自由的程序,我们已经实现了一个原型工具,称为RATCOP。在基准测试中,RATCOP能够证明高达65%的断言,相比之下,我们的基线证明了25%。此外,在与最近的并发静态分析器的比较研究中,RATCOP快了5个数量级。

英文摘要:

Data race free (DRF) programs constitute an important class of concurrent programs. In this paper we provide a framework for designing and proving the correctness of data flow analyses that target this class of programs. These analyses are in the same spirit as the "sync-CFG" analysis proposed in earlier literature. To achieve this, we first propose a novel concrete semantics for DRF programs, called L-DRF, that is thread-local in nature---each thread operates on its own copy of the data state. We show that abstractions of our semantics allow us to reduce the analysis of DRF programs to a sequential analysis. This aids in rapidly porting existing sequential analyses to sound and scalable analyses for DRF programs. Next, we parameterize L-DRF with a partitioning of the program variables into "regions" which are accessed atomically. Abstractions of the region-parameterized semantics yield more precise analyses for "region-race" free concurrent programs. We instantiate these abstractions to devise efficient relational analyses for race free programs, which we have implemented in a prototype tool called RATCOP. On the benchmarks, RATCOP was able to prove up to 65% of the assertions, in comparison to 25% proved by our baseline. Moreover, in a comparative study with a recent concurrent static analyzer, RATCOP was up to 5 orders of magnitude faster.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑