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

revive out of order commit #1841

Open
rohany opened this issue Mar 3, 2025 · 1 comment
Open

revive out of order commit #1841

rohany opened this issue Mar 3, 2025 · 1 comment

Comments

@rohany
Copy link
Contributor

rohany commented Mar 3, 2025

There are cases (like the convergence check in Pennant for example), where in-order commit leads to false dependencies in an application. Reviving out-of-order commit for restricted cases (like during trace replays) would be beneficial when there isn't an easy workaround from the application.

@elliottslaughter
Copy link
Contributor

As an example of the type of thing you have to do to work around this, see: https://gitlab.com/StanfordLegion/legion/-/merge_requests/1697

I'm not sure it's only about tracing either. Pretty much any time an application blocks on a future, this causes that future to carry a spurious dependency on every intervening task, regardless of whether those tasks are related or not.

In-order commit is very useful for reasoning about deletions and otherwise "unsynchronized" operations that would require manual synchronization to be visible. But in the case of futures, the only real problem I can see is from people writing non-idiomatic code (like checking for future readiness, which isn't safe in DCR anyway). In typical idiomatic code, it's hard to see out-of-order commit being a problem, and the performance loss is very noticeable.

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

No branches or pull requests

2 participants