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

Stabilize parallel front end #121

Open
1 of 3 tasks
nikomatsakis opened this issue Jul 22, 2024 · 6 comments
Open
1 of 3 tasks

Stabilize parallel front end #121

nikomatsakis opened this issue Jul 22, 2024 · 6 comments

Comments

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Jul 22, 2024

Metadata
Owner(s) @SparrowLii
Team(s) compiler
Goal document 2024h2/parallel-front-end

Summary

We will move rustc's support for parallel front end closer to stability by resolving [ICE] and [deadlock] issues, completing the [test] suit for multithreaded scenario and integrating parallel front end into bootstrap. This fits into our larger goal of improving rustc build times by 20% by leveraging multiple cores and enhance its robustness.

Tasks and status

@nikomatsakis nikomatsakis added this to the 2024h2 milestone Jul 22, 2024
@rust-lang rust-lang locked and limited conversation to collaborators Jul 25, 2024
@nikomatsakis
Copy link
Contributor Author

This issue is intended for status updates only.

For general questions or comments, please contact the owner(s) directly.

@SparrowLii
Copy link
Member

  • Key developments: *
    Use ui test to locate and solve the ICE problem of parallelfront end
    Discussed strategies for customizing and enhancing the compiler testing suit to address hard-to-reproduce bugs
  • Blockers: 
    Many deadlock issues are difficult to reproduce and resolve
  • Help wanted:
    Help test the deadlock code in the issue list and try to reproduce the issue

@SparrowLii
Copy link
Member

  • Key developments: *
    Add the cases in the issue list to the UI test to reproduce the bug or verify the non-reproducibility
  • Blockers: 
    null
  • Help wanted:
    Help test the deadlock code in the issue list and try to reproduce the issue

@SparrowLii
Copy link
Member

  • Key developments: *
    Still in the process of determining the cause of the deadlock through local testing and compiler code analysis.
  • Blockers: 
    null
  • Help wanted:
    Help test the deadlock code in the issue list and try to reproduce the issue

@nikomatsakis
Copy link
Contributor Author

@SparrowLii opened a “proposed 2025H1 project goal](https://rust-lang.github.io/rust-project-goals/2025h1/parallel-front-end.html) to continue this work. The plans for the next 6 months are

  • Solve reproducible deadlock issues via tests.
  • Enable parallel frontends in bootstrap.
  • Continue to improve parallel compilation performance, with the average speed increase from 20% to 25% under 8 cores and 8 threads.
  • Communicate with Cargo team on the solution and plan to support parallel front end.

@SparrowLii
Copy link
Member

  • Key developments: *
    We discussed solutions to avoid potential deadlocks in mechanism, and so far disabling work-stealing in rayon's subloops is an effective solution. We will try to incorporate related modification PR: Only work-steal in the main loop rustc-rayon#12
  • Blockers: 
    null
  • Help wanted:
    Help test the deadlock code in the issue list and try to reproduce the issue

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants