Skip to content
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

Internal/nested sweeping/exec policy settings #608

Merged
merged 23 commits into from
Feb 12, 2024

Conversation

SSoelvsten
Copy link
Owner

@SSoelvsten SSoelvsten commented Feb 12, 2024

Moves heuristic values from Nested Sweeping and Quantification into exec_policy (closes #596 ) while also integrating the fast reduce epsilon into the Inner Reduce Sweep. We are now almost ready to go searching for a reasonable default value.

@SSoelvsten SSoelvsten added ✨ feature New operation or other feature ✨ optimisation It's all about speed / space ✨ code quality Uncle Bob would be proud labels Feb 12, 2024
@SSoelvsten SSoelvsten self-assigned this Feb 12, 2024
Copy link

codecov bot commented Feb 12, 2024

Codecov Report

Attention: 8 lines in your changes are missing coverage. Please review.

Comparison is base (4cf2c47) 97.061% compared to head (3a0263b) 97.142%.

Files Patch % Lines
src/adiar/internal/algorithms/quantify.h 98.230% 4 Missing ⚠️
src/adiar/exec_policy.h 98.020% 2 Missing ⚠️
src/adiar/internal/algorithms/nested_sweeping.h 95.455% 2 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff              @@
##              main      #608       +/-   ##
=============================================
+ Coverage   97.061%   97.142%   +0.081%     
=============================================
  Files           88        88               
  Lines         6227      6264       +37     
=============================================
+ Hits          6044      6085       +41     
+ Misses         183       179        -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@SSoelvsten SSoelvsten mentioned this pull request Feb 12, 2024
@SSoelvsten SSoelvsten force-pushed the internal/nested_sweeping/exec_policy-settings branch from 2fc425f to 8cff2c4 Compare February 12, 2024 16:45
@SSoelvsten
Copy link
Owner Author

On older GNU compilers, we have the following two tests fail

List of failures:
 (*) adiar/bdd/quantify.cpp bdd_exists(const bdd&, const predicate<bdd::label_type>&) algorithm: Nested, max: 1+ quantifies exploding BDD 15 with unbounded repeated transposition:
/home/runner/work/adiar/adiar/test/adiar/bdd/test_quantify.cpp:3009: Expected: equal to 42
Actual: 41

 (*) adiar/zdd/project.cpp zdd_project(const zdd&, const predicate<zdd::label_type>) algorithm: Nested, max: 1+ quantifies exploding ZDD 5 with unbounded transpositions:
/home/runner/work/adiar/adiar/test/adiar/zdd/test_project.cpp:1173: Expected: equal to 42
Actual: 41

This value is the size of the call history. One should note, that it is 41 in the "switch to Nested Sweeping" unit test after. So, older compilers have some hiccup with the size computation.

The issue is probably due to some shenanigans with float-versus-double or converting size_t to
double including some rounding up. Either way, it may introduce undefined behaviour or be
interpreted multiple ways. This leads GCC 10 to unexpectedly abort repeated transposition.
@SSoelvsten SSoelvsten force-pushed the internal/nested_sweeping/exec_policy-settings branch from 9e7c2df to 34b13fc Compare February 12, 2024 17:39
Copy link

🟡 Regression Test (Picotrav 'adder')

'origin/internal/nested_sweeping/exec_policy-settings' is a change in performance of -0.58% (stdev: 1.06%).

... origin/main origin/internal/nested_sweeping/exec_policy-settings
Mean 9380.00 9434.40
Standard Deviation 99.83 92.25

Number of samples: 5

Copy link

🔴 Regression Test (QBF 'breakthrough/3x5_11_bwnib')

'origin/internal/nested_sweeping/exec_policy-settings' is a change in performance of -1.52% (stdev: 1.49%).

... origin/main origin/internal/nested_sweeping/exec_policy-settings
Mean 9819.20 9968.40
Standard Deviation 146.33 38.78

Number of samples: 5

Copy link

🟡 Regression Test (Picotrav 'arbiter')

'origin/internal/nested_sweeping/exec_policy-settings' is a change in performance of -0.16% (stdev: 0.91%).

... origin/main origin/internal/nested_sweeping/exec_policy-settings
Mean 62836.75 62936.75
Standard Deviation 571.86 109.47

Number of samples: 4

Copy link

🟡 Regression Test (QBF 'breakthrough/3x4_19_bwnib')

'origin/internal/nested_sweeping/exec_policy-settings' is a change in performance of -0.16% (stdev: 0.63%).

... origin/main origin/internal/nested_sweeping/exec_policy-settings
Mean 28659.40 28705.20
Standard Deviation 179.85 48.15

Number of samples: 5

Copy link

🔴 Regression Test (QBF 'ep/8x8_7_e-8-1_p-3-4_bwnib')

'origin/internal/nested_sweeping/exec_policy-settings' is a change in performance of -164.19% (stdev: 3.68%).

... origin/main origin/internal/nested_sweeping/exec_policy-settings
Mean 16616.20 43898.60
Standard Deviation 611.14 190.04

Number of samples: 5

Copy link

🟢 Regression Test (QBF 'domineering/5x5_13_bwnib')

'origin/internal/nested_sweeping/exec_policy-settings' is a change in performance of 4.46% (stdev: 4.65%).

... origin/main origin/internal/nested_sweeping/exec_policy-settings
Mean 31860.60 30439.60
Standard Deviation 1480.65 105.31

Number of samples: 5

Copy link

🟡 Regression Test (Picotrav 'mem_ctrl')

'origin/internal/nested_sweeping/exec_policy-settings' is a change in performance of -0.33% (stdev: 0.73%).

... origin/main origin/internal/nested_sweeping/exec_policy-settings
Mean 112172.75 112548.50
Standard Deviation 821.03 396.42

Number of samples: 4

@SSoelvsten
Copy link
Owner Author

A decrease in performance is to-be expected. We'll re-evaluate these values in a separate pull request.

@SSoelvsten SSoelvsten merged commit 47bdee6 into main Feb 12, 2024
51 of 54 checks passed
@SSoelvsten SSoelvsten deleted the internal/nested_sweeping/exec_policy-settings branch February 12, 2024 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ code quality Uncle Bob would be proud ✨ feature New operation or other feature ✨ optimisation It's all about speed / space
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Move Nested Sweeping Settings into exec_policy
1 participant