Given that Rust’s slogan is fearless concurrency, I think we can encourage parallel code more aggressively. There is an idea from my mind:
-
It is probably feasible to detect potential parallelizable code automatically based on MIR.
-
Not all the parallelizable code should be paralleled. We need benchmark number before this kind of optimization is implemented. Maybe we can add a new compiler option to inject code which can accumulate related performance statistics:
rustc --probe-parellel --release myproject.rs
We can use this binary in a production environment, and it will report most valuable parallel optimization candidates.
What do you think about this idea?