3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-06-19 15:16:29 +00:00

Merge branch 'solver_parallel' of github.com:Z3Prover/z3 into solver_parallel

This commit is contained in:
Ilana Shapiro 2026-06-14 23:32:32 -07:00
commit 778760ec98
2 changed files with 23 additions and 19 deletions

View file

@ -482,6 +482,8 @@ class parallel_solver {
void set_cancel() {
std::scoped_lock lock(mux);
if (m_state != state::is_running)
return;
cancel_workers_unlocked();
}
@ -926,9 +928,9 @@ class parallel_solver {
expr_ref_vector const& get_unsat_core() const { return m_unsat_core; }
void collect_statistics(statistics& st) const {
st.update("parallel-num_cubes", m_stats.m_num_cubes);
st.update("parallel-num-cubes", m_stats.m_num_cubes);
st.update("parallel-max-cube-size", m_stats.m_max_cube_depth);
st.update("bb-backbones-found", m_stats.m_backbones_found);
st.update("parallel-backbones-found", m_stats.m_backbones_found);
st.update("parallel-core-min-jobs-enqueued", m_stats.m_core_min_jobs_enqueued);
st.update("parallel-core-min-jobs-published", m_stats.m_core_min_jobs_published);
st.update("parallel-core-min-jobs-skipped", m_stats.m_core_min_jobs_skipped);
@ -1641,31 +1643,31 @@ class parallel_solver {
}
void collect_statistics(statistics& st) const {
st.update("bb-batches-total", m_stats.m_batches_total);
st.update("bb-candidates-total", m_stats.m_candidates_total);
st.update("bb-backbones-detected", m_stats.m_backbones_detected);
st.update("bb-internal-backbones-found", m_stats.m_internal_backbones_found);
st.update("bb-retry-backbones-found", m_stats.m_retry_backbones_found);
st.update("bb-retries", m_stats.m_bb_retries);
st.update("bb-core-refinement-rounds", m_stats.m_core_refinement_rounds);
st.update("bb-singleton-backbones", m_stats.m_singleton_backbones);
st.update("bb-fallback-singleton-checks", m_stats.m_fallback_singleton_checks);
st.update("bb-fallback-chunk-exhausted", m_stats.m_fallback_reason_chunk_exhausted);
st.update("bb-fallback-undef", m_stats.m_fallback_reason_undef);
st.update("bb-literals-removed-by-core", m_stats.m_lits_removed_by_core);
st.update("bb-num-chunk-increases", m_stats.m_num_chunk_increases);
st.update("parallel-bb-batches-total", m_stats.m_batches_total);
st.update("parallel-bb-candidates-total", m_stats.m_candidates_total);
st.update("parallel-bb-backbones-detected", m_stats.m_backbones_detected);
st.update("parallel-bb-internal-backbones-found", m_stats.m_internal_backbones_found);
st.update("parallel-bb-retry-backbones-found", m_stats.m_retry_backbones_found);
st.update("parallel-bb-retries", m_stats.m_bb_retries);
st.update("parallel-bb-core-refinement-rounds", m_stats.m_core_refinement_rounds);
st.update("parallel-bb-singleton-backbones", m_stats.m_singleton_backbones);
st.update("parallel-bb-fallback-singleton-checks", m_stats.m_fallback_singleton_checks);
st.update("parallel-bb-fallback-chunk-exhausted", m_stats.m_fallback_reason_chunk_exhausted);
st.update("parallel-bb-fallback-undef", m_stats.m_fallback_reason_undef);
st.update("parallel-bb-literals-removed-by-core", m_stats.m_lits_removed_by_core);
st.update("parallel-bb-num-chunk-increases", m_stats.m_num_chunk_increases);
auto safe_ratio = [](double num, double den) -> double {
return den > 0 ? num / den : 0.0;
};
st.update("bb-backbone-yield-pct",
st.update("parallel-bb-backbone-yield-pct",
100.0 * safe_ratio(m_stats.m_internal_backbones_found, m_stats.m_candidates_total));
st.update("bb-avg-backbones-per-batch",
st.update("parallel-bb-avg-backbones-per-batch",
safe_ratio(m_stats.m_internal_backbones_found, m_stats.m_batches_total));
st.update("bb-core-refinement-rounds-per-batch",
st.update("parallel-bb-core-refinement-rounds-per-batch",
safe_ratio(m_stats.m_core_refinement_rounds, m_stats.m_batches_total));
st.update("bb-core-effectiveness-lit-removed-per-round",
st.update("parallel-bb-core-effectiveness-lit-removed-per-round",
safe_ratio(m_stats.m_lits_removed_by_core, m_stats.m_core_refinement_rounds));
}