一句话:提出受响应式编程启发的半隐式并行化编程模型,让分析开发者无需自行处理并发即可并行化静态分析。
静态分析的并行化对于扩展到真实程序是必要的,但这是一项复杂困难的任务,因此通常只针对少数重点分析手工完成。本文提出一种用于静态分析半隐式并行化的编程模型,其灵感来自响应式编程。该模型将“如何并行化分析”的领域专家知识编码在编程框架中复用,使开发者无需自行考虑并行化与并发问题。该编程模型支持有状态计算,仅要求格上的单调计算,并且不依赖于具体分析。评估表明该编程模型可适用于不同分析,并体现了用户选择调度策略的重要性。作者实现了一个 IFDS 求解器,其在绝对性能和可扩展性上均优于当前最先进的专用并行 IFDS 求解器。
Parallelization of static analyses is necessary to scale to real-world programs, but it is a complex and difficult task and, therefore, often only done manually for selected high-profile analyses. In this paper, we propose a programming model for semi-implicit parallelization of static analyses which is inspired by reactive programming. Reusing the domain-expert knowledge on how to parallelize anal- yses encoded in the programming framework, developers do not need to think about parallelization and concurrency issues on their own. The programming model supports stateful computations, only requires monotonic computations over lattices, and is independent of specific analyses. Our evaluation shows the applicability of the programming model to different analyses and the importance of user-selected scheduling strategies. We implemented an IFDS solver that was able to outperform a state-of-the-art, specialized parallel IFDS solver both in absolute performance and scalability.
@inproceedings{paperbot6046,
title = {A programming model for semi-implicit parallelization of static analyses},
author = {Dominik Helm and Florian Kübler and Jan Thomas Kölzer and Philipp Haller and Michael Eichberg and Guido Salvaneschi and Mira Mezini},
booktitle = {ISSTA},
year = {2020},
doi = {10.1145/3395363.3397367}
}