mirror of
https://github.com/Z3Prover/z3
synced 2026-07-12 01:56:22 +00:00
Add new parallel algorithm as a tactic (parallel_tactical2.cpp) Don't port over old experiments from smt_parallel that we aren't using (sls, inprocessing, failed_literal_mode for bb detection) Fix bugs: lease cancellation/reslimit race condition, involves changing lease epoch to simple boolean flag Also, now there is a single shared set of params for the tactic and smt_parallel **Test runs for the parallel_tactical2 vs old smt_parallel version:** run-2747-Z3-threads-4-qflia-30s-stats.md run-2746-Z3-threads-4-qflia-30s-parallel_tactic-stats.md run-2745-Z3-threads-1-qfbv-30s-stats.md run-3013-Z3-threads-4-qfbv-30s-parallel_tactic-stats.md --> note this is indeed run-3013, I reran after a bugfix in inc_sat_solver run-2743-Z3-threads-4-qfnia-30s-stats.md run-2742-Z3-threads-4-qfnia-30s-parallel_tactic-stats.md **Test runs for the new smt_parallel with bugfixes:** run-2801-Z3-threads-4-qflia-30s-smtparallel-bugfixes-stats.md, run-2800-Z3-threads-4-qflia-30s-smtparallel-bugfixes-stats.md run-2797-Z3-threads-4-qfnia-30s-smtparallel-bugfixes-stats.md compare to old smt_parallel: run-2747-Z3-threads-4-qflia-30s-stats.md run-2743-Z3-threads-4-qfnia-30s-stats.md Note that there is a slight regression on lia in run-2800. The source of this appears to be the new new LP largest-cube LIA heuristic param, which is enabled by default. disabling this param in run-2801 restored performance (I didn't change this in this PR though, just something to note) http://mtzguido.tplinkdns.com:8081/z3/compare_stats.html --------- Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> Co-authored-by: Ilana Shapiro <ilanashapiro@Ilanas-MacBook-Pro.local> Co-authored-by: Ilana Shapiro <ilanashapiro@Ilanas-MBP.localdomain> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| sat_solver | ||
| smt | ||
| tactic | ||
| CMakeLists.txt | ||
| dimacs.cpp | ||
| dimacs.h | ||
| sat_aig_finder.cpp | ||
| sat_aig_finder.h | ||
| sat_allocator.h | ||
| sat_anf_simplifier.cpp | ||
| sat_anf_simplifier.h | ||
| sat_asymm_branch.cpp | ||
| sat_asymm_branch.h | ||
| sat_asymm_branch_params.pyg | ||
| sat_bcd.cpp | ||
| sat_bcd.h | ||
| sat_big.cpp | ||
| sat_big.h | ||
| sat_clause.cpp | ||
| sat_clause.h | ||
| sat_clause_set.cpp | ||
| sat_clause_set.h | ||
| sat_clause_use_list.cpp | ||
| sat_clause_use_list.h | ||
| sat_cleaner.cpp | ||
| sat_cleaner.h | ||
| sat_config.cpp | ||
| sat_config.h | ||
| sat_ddfw_wrapper.cpp | ||
| sat_ddfw_wrapper.h | ||
| sat_drat.cpp | ||
| sat_drat.h | ||
| sat_elim_eqs.cpp | ||
| sat_elim_eqs.h | ||
| sat_extension.h | ||
| sat_gc.cpp | ||
| sat_integrity_checker.cpp | ||
| sat_integrity_checker.h | ||
| sat_justification.h | ||
| sat_local_search.cpp | ||
| sat_local_search.h | ||
| sat_lookahead.cpp | ||
| sat_lookahead.h | ||
| sat_model_converter.cpp | ||
| sat_model_converter.h | ||
| sat_mus.cpp | ||
| sat_mus.h | ||
| sat_npn3_finder.cpp | ||
| sat_npn3_finder.h | ||
| sat_parallel.cpp | ||
| sat_parallel.h | ||
| sat_prob.cpp | ||
| sat_prob.h | ||
| sat_probing.cpp | ||
| sat_probing.h | ||
| sat_proof_trim.cpp | ||
| sat_proof_trim.h | ||
| sat_scc.cpp | ||
| sat_scc.h | ||
| sat_scc_params.pyg | ||
| sat_simplifier.cpp | ||
| sat_simplifier.h | ||
| sat_simplifier_params.pyg | ||
| sat_solver.cpp | ||
| sat_solver.h | ||
| sat_solver_core.h | ||
| sat_types.h | ||
| sat_watched.cpp | ||
| sat_watched.h | ||
| sat_xor_finder.cpp | ||
| sat_xor_finder.h | ||