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

Guarantee progress in executors #113853

Open
markshannon opened this issue Jan 9, 2024 · 0 comments
Open

Guarantee progress in executors #113853

markshannon opened this issue Jan 9, 2024 · 0 comments
Labels
interpreter-core (Objects, Python, Grammar, and Parser dirs) performance Performance or resource usage

Comments

@markshannon
Copy link
Member

markshannon commented Jan 9, 2024

Reasoning about and implementing trace stitching is made much easier if we guarantee that individual executors make progress.

We need to guarantee that tier 2 execution as a whole makes progress, otherwise we might get stuck.
Implementing this guarantee is blocking progress on #112354.

There are many ways to guarantee progress, but the simplest conceptually, to my mind, is to guarantee that all individual executors make progress. If all executors make progress, then any (non-empty) graph of executors must also make progress.

The implementation is reasonably straightforward: De-specialize the first (tier 1) instruction when creating the executor.
Our concern is that this will negatively impact performance.

We await profiling and stats to see what the performance impact might be.
Until we do stitching, all executors start with JUMP_BACKWARD which is not specialized, so de-specializing has no effect for now.

Linked PRs

@markshannon markshannon added the performance Performance or resource usage label Jan 9, 2024
@Eclips4 Eclips4 added the interpreter-core (Objects, Python, Grammar, and Parser dirs) label Jan 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
interpreter-core (Objects, Python, Grammar, and Parser dirs) performance Performance or resource usage
Projects
None yet
Development

No branches or pull requests

2 participants