3 ms·
If you can't observe the non-determinism, then is it really non-determinism? Your processor executes a single thread of instructions also in a non-deterministi
by chrisseaton 4y ago
If you can't observe the non-determinism, then is it really non-determinism?
Your processor executes a single thread of instructions also in a non-deterministic order, based on complex internal state. We'd never say it was non-deterministic, as you can't detect it.
- smallnamespace 4y agoIt's visible from the perspective of the software engineer who molds non-deterministic abstractions into predictable interactions for the user.
- ajross 4y agoYou can absolutely observe non-determinism. That's what a race condition bug is, after all. You can also observe benign nondeterminism every day in anything that records ordering. Go do a parallel make, then do it again and observe the ordering of the mtime values in the intermediate artifacts. It won't be the same. And FWIW: CPU-internal instruction reordering is observable too, though the details there get complicated. x86 hides (almost!) all the complexity from you, but ARM's OOO is leakier and requires careful attention to memory barriers.