Same Engine, Multiple Gears: Parallelizing Fixpoint Iteration at Different Granularities (Extended Version)
Ali Rasim Kocal, Michael Schwarz, Simmo Saan, Helmut Seidl

TL;DR
This paper introduces a flexible parallel fixpoint iteration engine for static analysis that adapts to different task granularities, improving analysis efficiency on large real-world programs.
Contribution
It presents a parametric parallel fixpoint engine supporting multiple task granularities, with two distinct parallelization philosophies integrated into Goblint.
Findings
Both philosophies improve analysis times on large programs.
The independent approach scales better with more cores.
The engine's flexibility allows tailored parallelization strategies.
Abstract
Fixpoint iteration constitutes the algorithmic core of static analyzers. Parallelizing the fixpoint engine can significantly reduce analysis times. Previous approaches typically fix the granularity of tasks upfront, e.g., at the level of program threads or procedures - yielding an engine permanently stuck in one gear. Instead, we propose to parallelize a generic fixpoint engine in a way that is parametric in the task granularity - meaning that our engine can be run in different gears. We build on the top-down solver TD, extended with support for mixed-flow sensitivity, and realize two competing philosophies for parallelization, both building on a task pool that schedules tasks to a fixed number of workers. The nature of tasks differs between the philosophies. In the immediate approach, all tasks access a single thread-safe hash table maintaining solver state, while in the independent…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Security and Verification in Computing
