Skip to content

Enable compact less-than propositional encoding #7068

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

tautschnig
Copy link
Collaborator

@tautschnig tautschnig commented Aug 11, 2022

This was previously disabled as it appeared to degrade performance. New
benchmarking, however, suggests considerable performance improvement:

When running on various proofs done for AWS open-source projects, this
changes the performance as follows (when comparing to #7021): with
CaDiCaL as back-end, the total solver time for the hardest 46 proofs
changes from 26779.7 to 24472.6 seconds (2307.1 seconds speed-up); with
Minisat the hardest 49 proofs take 18541.2 instead of 28420.4
seconds (9879.2 seconds speed-up). Across these benchmarks, 1.0% of
variables and 3.2% of clauses are removed.

compact-le-or-lt

  • Each commit message has a non-empty body, explaining why the change was made.
  • n/a Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • n/a The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • n/a White-space or formatting changes outside the feature-related changed lines are in commits of their own.

@tautschnig tautschnig self-assigned this Aug 11, 2022
@tautschnig tautschnig force-pushed the feature/enable-compact-le-or-lt branch from f620635 to 40a5d86 Compare August 11, 2022 20:29
@tautschnig tautschnig marked this pull request as ready for review August 11, 2022 20:29
@codecov
Copy link

codecov bot commented Aug 11, 2022

Codecov Report

Merging #7068 (8afeaca) into develop (a326820) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

❗ Current head 8afeaca differs from pull request most recent head 3cd6348. Consider uploading reports for the commit 3cd6348 to get more accurate results

@@             Coverage Diff             @@
##           develop    #7068      +/-   ##
===========================================
- Coverage    77.86%   77.85%   -0.01%     
===========================================
  Files         1569     1569              
  Lines       180995   181038      +43     
===========================================
+ Hits        140929   140951      +22     
- Misses       40066    40087      +21     
Impacted Files Coverage Δ
src/pointer-analysis/value_set.cpp 82.78% <100.00%> (+0.18%) ⬆️
src/solvers/flattening/bv_pointers.cpp 85.80% <100.00%> (+0.20%) ⬆️
src/solvers/flattening/bv_utils.cpp 78.41% <100.00%> (-1.20%) ⬇️
src/solvers/smt2/smt2_format.cpp 85.39% <0.00%> (-1.13%) ⬇️
src/ansi-c/expr2c.cpp 67.16% <0.00%> (-0.19%) ⬇️
src/util/ieee_float.cpp 88.06% <0.00%> (-0.17%) ⬇️
src/solvers/smt2/smt2_conv.cpp 68.66% <0.00%> (-0.11%) ⬇️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@tautschnig tautschnig self-assigned this Aug 12, 2022
Copy link
Collaborator

@martin-cs martin-cs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lianah @rubengmartins looks like we were right!

@tautschnig tautschnig force-pushed the feature/enable-compact-le-or-lt branch 2 times, most recently from 9a13304 to 8afeaca Compare August 14, 2022 11:37
This was previously disabled as it appeared to degrade performance. New
benchmarking, however, suggests considerable performance improvement:

When running on various proofs done for AWS open-source projects, this
changes the performance as follows (when comparing to diffblue#7021): with
CaDiCaL as back-end, the total solver time for the hardest 46 proofs
changes from 26779.7 to 24472.6 seconds (2307.1 seconds speed-up); with
Minisat the hardest 49 proofs take 18541.2 instead of 28420.4
seconds (9879.2 seconds speed-up). Across these benchmarks, 1.0% of
variables and 3.2% of clauses are removed.

INCLUDE_REDUNDANT_CLAUSES is not enabled: while this would yield a further
speed-up of 1080.4 seconds with CaDiCaL, it slows down Minisat by 4440.6
seconds on the above benchmark set.
@tautschnig tautschnig force-pushed the feature/enable-compact-le-or-lt branch from 8afeaca to 3cd6348 Compare August 14, 2022 20:22
@tautschnig tautschnig merged commit 43e7a55 into diffblue:develop Aug 14, 2022
@tautschnig tautschnig deleted the feature/enable-compact-le-or-lt branch August 14, 2022 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants