Same Engine, Multiple Gears: Parallelizing Fixpoint Iteration at Different Granularities
Authors/Creators
Contributors
Researchers:
Description
Artifact for the TACAS '26 Paper Same Engine, Multiple Gears: Parallelizing Fixpoint Iteration at Different Granularities
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 up-front, 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 many 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, which 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 approach, each task has its own state and exchanges data with other tasks via a publish/subscribe data structure. We have equipped the fixpoint engine of the static analysis framework Goblint with implementations following both philosophies and report on our results for large real-world programs.
Please refer to README.md for the artifact descritption.
For the most up-to-date version of the Goblint Static Analyzer, please refer to https://goblint.in.tum.de.
Files
README.md
Files
(1.8 GB)
| Name | Size | Download all |
|---|---|---|
|
md5:bea393296b888602dc68c39704cfa69c
|
10.5 kB | Preview Download |
|
md5:9c4ba8b11ad4b3a8d3edecb406fa1e71
|
1.8 GB | Preview Download |
Additional details
Software
- Programming language
- OCaml