-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
rt: make the LIFO slot in the multi-threaded scheduler stealable #4941
Comments
The multi-threaded scheduler includes a per-worker LIFO slot to store the last scheduled task. This can improve certain usage patterns, especially message passing between tasks. However, this LIFO slot is not currently stealable. Eventually, the LIFO slot **will** become stealable. However, as a stop-gap, this unstable option lets users disable the LIFO task when doing so improves their application's overall performance. Refs: #4941
Is there any further information available on this? I seem to have hit some pathological worst-case behavior with very cpu-heavy tasks, where every thread except one ended up totally stalled. Disabling the LIFO slot resolved the problem, giving me a 20x speedup. |
It has not been implemented yet. |
Should we make a counter that tracks times when if possible, the lifo slot would have been stolen? This could help application authors know if they should try the mitigation. |
The multi-threaded scheduler includes a per-worker LIFO slot used to store the last scheduled task. This can improve certain usage patterns, especially message passing between tasks. However, this LIFO slot is not currently stealable.
As a temporary workaround, #4936 adds an unstable configuration option to disable the LIFO slot.
The text was updated successfully, but these errors were encountered: