-
Notifications
You must be signed in to change notification settings - Fork 93
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
Fix performance regression in reductions benchmark #3874
Fix performance regression in reductions benchmark #3874
Conversation
Signed-off-by: Jeremiah Corrado <[email protected]>
Signed-off-by: Jeremiah Corrado <[email protected]>
Signed-off-by: Jeremiah Corrado <[email protected]>
It looks like the benchmark is failing b/c prod does not handle overflow. numpy seems to set the overflow result to 0. I get this print statement from the failing case in
|
Thanks for pointing that out! I'll see if I can fix it. |
Signed-off-by: Jeremiah Corrado <[email protected]>
I'm seeing the following performance for the reduce benchmark (on the same system where the linked graph is generated):
This is around 10% lower than the results we've seen historically, which could be attributed to a difference in system configuration or something, but could also indicate that there are some other (more minor) performance fixes needed. I'd propose we merge this PR and see how the nightly performance testing graph responds before looking into this further. |
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.
looks good to me!
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.
Thanks for doing this!
Adds an annotation for a recent Arkouda reduction performance regression: - initial regression caused by: Bears-R-Us/arkouda#3845 - resolved by: Bears-R-Us/arkouda#3874 [Reviewed by nobody; annotations update]
Fix a performance regression caused by recent refactoring of ReductionMsg.
The refactor made total reductions (i.e., reducing an array to a single scalar value) return that scalar value via a 1-element array. This resulted in much cleaner code, but also added overhead for the total-reduction case. This PR separates total reductions into separate commands s.t. they can return a scalar directly.
Also fixes a bug in register_commands.py, where any unrecognized return type was being treated as a symbol-table entry.