Skip to content

Conversation

zetanumbers
Copy link
Contributor

@zetanumbers zetanumbers commented Sep 5, 2025

I would like to help push progress on parallel compiler. I think it will be necessary at some point to test compiler in its multi-threaded mode (we already "have" parallel compiler but it is single-threaded by default) via crater. It would allow us to diagnose new issues, measure impact on the ecosystem and estimate amount of remaining work.

I have modified compiler to use "num_cpus" number of 8 threads by default. But I am not sure if there's better value for the cloud environment, so please tell if there is one. I am also not aware of any other nuances of cloud computing, but @Mark-Simulacrum on zulip have confirmed it should be fine.

I believe build-and-test crater mode should provide us with more useful information than the other modes, but if necessary you can scale it down to just build only.

Related zulip thread: #t-compiler/parallel-rustc > Run crater with `-Zthreads=$NUM_CPUS` set

EDIT: Switched from num_cpus to 8 threads

@rustbot
Copy link
Collaborator

rustbot commented Sep 5, 2025

r? @petrochenkov

rustbot has assigned @petrochenkov.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 5, 2025
@lqd
Copy link
Member

lqd commented Sep 5, 2025

@bors try

rust-bors bot added a commit that referenced this pull request Sep 5, 2025
…try>

Test out parallel frontend via crater
@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@petrochenkov petrochenkov added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 5, 2025
@bjorn3
Copy link
Member

bjorn3 commented Sep 5, 2025

@bors try spurious failure

@rust-bors
Copy link

rust-bors bot commented Sep 5, 2025

Unknown argument "spurious". Run @bors2 help to see available commands.

@bjorn3
Copy link
Member

bjorn3 commented Sep 5, 2025

Never mind, that was PR CI, not the try job.

@rust-bors
Copy link

rust-bors bot commented Sep 5, 2025

☀️ Try build successful (CI)
Build commit: d79d87d (d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6, parent: ad85bc524b1ad696e42061ad8338d382dffbdbe5)

@petrochenkov
Copy link
Contributor

@craterbot build-and-test

@craterbot
Copy link
Collaborator

🚨 Error: failed to parse the command

🆘 If you have any trouble with Crater please ask in t-infra on Zulip
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@petrochenkov
Copy link
Contributor

@craterbot run mode=build-and-test

@craterbot
Copy link
Collaborator

👌 Experiment pr-146237 created and queued.
🤖 Automatically detected try build d79d87d
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🚧 Experiment pr-146237 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-146237 is completed!
📊 182 regressed and 154 fixed (694485 total)
📊 115635 spurious results on the retry-regessed-list.txt, consider a retry1 if this is a significant amount.
📰 Open the summary report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Footnotes

  1. re-run the experiment with crates=https://crater-reports.s3.amazonaws.com/pr-146237/retry-regressed-list.txt

@zetanumbers
Copy link
Contributor Author

OOM build failures increasing from 5% to 15% is concerning if we will have more that one thread enabled by default one day. I hypothesized in the zulip thread it comes from increased RAM consumption during parallel compilation. I guess if we set threads to num_cpus (which is our eventual goal) this problem would become less noticeable. So I have reverted to this behavior to see what happens now.

@craterbot run mode=build-only crates=https://crater-reports.s3.amazonaws.com/pr-146237/retry-regressed-list.txt

@craterbot
Copy link
Collaborator

🔒 Error: you're not allowed to interact with this bot.

🔑 If you are a member of a Rust team and need access, please update rust-lang/team to grant your team or yourself access to the crater permission.
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@zetanumbers
Copy link
Contributor Author

zetanumbers commented Sep 18, 2025

Welp. Can somebody help me here, please? @petrochenkov ? Also it should probably be set to p=1 as it's only 1/10 of crates to build.

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

failures:

---- [ui] tests/ui-fulldeps/obtain-borrowck.rs stdout ----
Saved the actual run.stdout to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui-fulldeps/obtain-borrowck/obtain-borrowck.run.stdout`
diff of run.stdout:

1 Bodies retrieved for:
2 ::X::provided
- ::foo
- ::main
- ::main::{constant#0}
- ::with_nested_body
- ::with_nested_body::{closure#0}
8 ::{impl#0}::new
9 ::{impl#1}::provided
10 ::{impl#1}::required


The actual run.stdout differed from the expected run.stdout

error: 1 errors occurred comparing run output.
status: exit status: 0
command: cd "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui-fulldeps/obtain-borrowck" && RUSTC="/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" RUST_TEST_THREADS="4" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui-fulldeps/obtain-borrowck/a" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--edition=2021" "/checkout/tests/ui-fulldeps/auxiliary/obtain-borrowck-input.rs"
--- stdout -------------------------------
Bodies retrieved for:
::X::provided
::{impl#0}::new
::{impl#1}::provided
::{impl#1}::required
------------------------------------------
stderr: none

---- [ui] tests/ui-fulldeps/obtain-borrowck.rs stdout end ----

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants