ParAlloy: Towards a Framework for Efficient Parallel Analysis of Alloy Models [chapter]

Nicolás Rosner, Juan P. Galeotti, Carlos G. Lopez Pombo, Marcelo F. Frias
2010 Lecture Notes in Computer Science  
Alloy [Jac02a] is a widely adopted relational modeling language. Its appealing syntax and the support provided by the Alloy Analyzer [Jac02b] tool make model analysis accessible to a public of non-specialists. A model and property are translated to a propositional formula, which is fed to a SAT-solver to search for counterexamples. The translation strongly depends on user-provided bounds for data domains called scopes -the larger the scopes, the more confident the user is about the correctness
more » ... f the model. Due to the intrinsic complexity of the SAT-solving step, it is often the case that analyses do not scale well enough to remain feasible as scopes grow. ParAlloy exploits the possibility of splitting the SAT formula, thus allowing for parallel SAT-solving of Alloy models. Three of its important characteristics are: 1. Its core component is a parallel solver for arbitrary propositional formulas -not necessarily in CNF-based on problem decomposition, and making a novel use of BEDs [AH02] for subproblem representation and manipulation, Minisat [ES03] for subproblem analysis, and MPI [SOHL + 98] for inter-process communication. 2. Its Alloy-specific enhancements further improve (parallel) analyzability by using knowledge obtained from the models to assist splitting decisions. 3. For valid properties (the UNSAT case), the speedups allowed the analysis of Alloy properties (such as some assertions in [Zav06] ) that exceed the current capabilities of the Alloy Analyzer. For invalid properties, test case generation or iterative model refinement (the SAT case), parallel analysis of search space paths often leads to much higher speedups, since its exhaustion is unnecessary.
doi:10.1007/978-3-642-11811-1_33 fatcat:rpcvdx3jmndcdba267ifvqbzgm