5 ms·
Maybe we should run the code twice on different cpu architecures and only accept the results if they are identical. I’ve heard of high reliability environments
by etaioinshrdlu 5y ago
Maybe we should run the code twice on different cpu architecures and only accept the results if they are identical. I’ve heard of high reliability environments doing this, but maybe there are cases for doing it in web/IT as well.
This would help catch a large variety of possible errors, including but not limited to cpu bit flips, cpu bugs, memory errors.
- Dylan16807 5y agoMaybe, but in most situations you're probably better off adding some more developer time to work on software bugs than you are doubling your computation cost.
- slver 5y agoThis kind of problems we're discussing and software bugs are not the same thing. A memory bit flip is not really a software bug is it
- Dylan16807 5y agoOf course they're not the same thing. But they both make things go wrong. There are situations where hardware bugs are important, and there are situations where hardware bugs don't make a meaningful difference.
- deleted 5y ago[deleted]
- cmeacham98 5y agoIn my experience, achieving perfect determinism across two architectures is a problem that cannot be easily hand waved away. For 99% of cases it is fine, but when you run into that last 1% it hurts.
- etaioinshrdlu 5y agoIt might be a huge hassle but it might be worth it if high reliability is desired.
- sennight 5y agoTriple modular redundancy - explored on the earliest computers, when these kinds of CPU errors were common (but for other reasons). It isn't commonly implemented today for the same reason that ECC RAM isn't in everything by default - people tend to prefer paying less and just crossing their fingers. Rad-Tolerant Lockstep Quad Core 8051: https://www.eetimes.com/rad-tolerant-lockstep-quad-core-8051-uses-only-12-of-fpga/ https://www.eetimes.com/rad-tolerant-lockstep-quad-core-8051... Tolerating rads with cold-war mcu softcores. Glorious.