gh-82054: Implements test.regrtest unittest sharding to pull in long tails for asyncio #103852
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
gh-82054: Implements test.regrtest unittest sharding to pull in long tails for asyncio and compiler
TLDR: This runs test_asyncio and test_compiler sub-tests in parallel
Below is a summary about this change which is the same information from the issue in cinder that addressed this. It can be found at facebookincubator/cinder@3c6be01
Summary:
These two tests are typically the long-poles in runs because they are modules with a lot of further sub-tests run serially. By breaking out the sub-tests as independent modules we can run a lot more in parallel.
The real win comes in the next diff but with this change alone on my devserver:
time make testcinder
goes from ~25m -> ~19m.time make testcinder_jit
goes from ~26m -> ~18m.time make testcinder
goes from ~6m15s -> ~4m45s.time make testcinder_jit
goes from ~6m -> ~5m30s.While this is a bit hacky and annoyingly involves changing CPython test infra, I think the maintenance overhead is worth it. It's not a complicated change and I think the win in productivity with the diff above is significant.