Algorithms that safely mutate the same data structure on multiple threads and do so safely because of some complex algorithmic properties that guarantee that the changes do not overlap?
Why can Rust not do that?
How do you create shared mutable ownership of overlapping ranges of a single flat array in rust?
similarly except the algorithm to Mutex<[T]> and Arc?
How does this work e.g. for an array of integers that several workers threads write to at random, non-overlapping positions?
1. by implementing your complex algorithm?
2. if they don't overlap, they can't be random, can they?
Rust can literally do anything programmatically. Idk why you think it cannot do something.
They can be unordered, e.g. when reshuffling data into a new buffer based on a permutation that was computed separately. How do you avoid locking the output buffer in rust?