Closed computablee closed 1 year ago
Attention: 1 lines
in your changes are missing coverage. Please review.
Comparison is base (
72f6815
) 99.54% compared to head (6509181
) 99.44%. Report is 2 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Which issue are you addressing?
Closes #14 and #46. Makes progress towards #16. Fixes an erroneous
Ordered_works
test. Fixed an issue with chunk size inference onstatic
scheduling.How have you addressed the issue?
I have implemented a lock-free dynamic scheduler which drastically outperforms the prior scheduler when the chunk size is set to be very small. Additionally, I have applied AggressiveInlining attributes around the core scheduler code, making small improvements to performance here and there. These inlining attributes improve performance of all 3 primary schedulers, as well as some of the code for calculating collapse indices. A lock-free guided scheduler was not implemented after testing, because the amount of lock contentions was decided to be minuscule compared to dynamic, and a lock free scheduler was not likely to make much of a difference, if at all.
How have you tested your patch?
The HeatTransfer benchmark was used on my personal system with an i5-8400T CPU. Proper benchmarking protocols were used, and the results were analyzed constantly throughout optimization. For the non-optimization stuff, unit tests were altered and tested. All unit tests currently pass.