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

Avoid flushing aggregators in lockstep #21106

Merged
merged 1 commit into from
Nov 30, 2022

Conversation

ronawho
Copy link
Contributor

@ronawho ronawho commented Nov 29, 2022

When flushing, previously all aggregators would flush to locale 0, then 1 and so on in psdueo lockstep. This created a many-to-one bottleneck, especially at scale. This updates aggregators to start flushing to the locale they last aggregated a value for. Keeping track of the last locale is trivially fast and getting rid of the lockstep comm behavior improves performance, particularly at scale.

This change was made to Arkouda's aggregators in Bears-R-Us/arkouda#1826 and this PR effectively pulls in an "upstream" change. Eventually we just want Arkouda to use Chapel's aggregators, but there have been frequent enough changes to aggregators that it's been hard to time.

When flushing, previously all aggregators would flush to locale 0, then
1 and so on in psdueo lockstep. This created a many-to-one bottleneck,
especially at scale. This updates aggregators to start flushing to the
locale they last aggregated a value for. Keeping track of the last
locale is trivially fast and getting rid of the lockstep comm behavior
improves performance, particularly at scale.

This change was made to Arkouda's aggregators in Bears-R-Us/arkouda 1826
and this PR effectively pulls in an "upstream" change. Eventually we
just want Arkouda to use Chapel's aggregators, but there have been
frequent enough changes to aggregators that it's been hard to time.

Signed-off-by: Elliot Ronaghan <[email protected]>
@ronawho ronawho requested a review from benharsh November 29, 2022 22:49
@ronawho ronawho merged commit b3570e8 into chapel-lang:main Nov 30, 2022
@ronawho ronawho deleted the avoid-agg-lockset-flush branch November 30, 2022 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants