-
Notifications
You must be signed in to change notification settings - Fork 1.2k
partial merge #18011: Replace current benchmarking framework with nanobench #4188
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
Conversation
|
I spent some time trying to do this, but got annoyed by the number of benchmarks that were "wavy" and had a high error percentage. I couldn't find a good way to fix this, but I think this PR is still very valuable |
|
I noticed that just after I published this PR and clicked on the page for bitcoin#18011. Oops. This is just one PR in a series of PRs that should get our benchmark system to par and unless there's any input about parallel tests, I might enclose them behind an opt-in flag that will warn the user that it is relatively time consuming even on a relatively modest computer |
815c120 to
d20cdd1
Compare
|
Results from test optimization and refactoring (courtesy of d20cdd1ad638eb14bfc433af2f7e1592ee80db05)
|
UdjinM6
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few first sight notes
fa36f5c to
95c7f50
Compare
|
Build fails |
|
needs rebase |
|
Pls see 01831b8771fa39fde39f90a8aed96f1e8717c23f and maybe 9f95e7632431ee788e6862e3194dcefb5a021a2f |
0cfe304 to
5435351
Compare
|
Rebased, bench works now! |
UdjinM6
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, ACK
|
Pls rebase and drop 14244 and 13822 (the were merged in other PRs recently) |
PastaPastaPasta
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK
|
Noticed few issues - not sure if I missed them earlier 🙈 or if they were introduced via the most recent rebase 👀 anyway, pls see f16ff50 |
* stop using global pointers, every run gets a unique pointer for itself * keep tests relatively self contained, remove the need for CleanupBLSDkgTests() * remove parallel tests, they seem to be somewhat unpredictable and seem to have no correlated increased CPU usage * minor cleanup and refactoring, convert struct to class, rearrange variables * correlate batch with quorum, minEpochIterations set to 1, unless tests are known unstable, then set to 10
UdjinM6
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK
PastaPastaPasta
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
re-ACK
Contents
bitcoin#18011
Example output from
bench_dashBLSDKG_BuildQuorumVerificationVectors_parallel_10(Unstable with ~1.0 iters. IncreaseminEpochIterationsto e.g. 10)BLSDKG_BuildQuorumVerificationVectors_parallel_100(Unstable with ~1.0 iters. IncreaseminEpochIterationsto e.g. 10)BLSDKG_BuildQuorumVerificationVectors_parallel_400BLSDKG_BuildQuorumVerificationVectors_simple_10BLSDKG_BuildQuorumVerificationVectors_simple_100BLSDKG_BuildQuorumVerificationVectors_simple_400Things To Do
minEpochIterationsfor Dash-specific testsDisclosures