4 ms·
Physics guy here. Isn't the solution to simply duplicate the code and compare it before execution? Do it 3 times and use the majority. This could be the preambl
by javajosh 3y ago
Physics guy here. Isn't the solution to simply duplicate the code and compare it before execution? Do it 3 times and use the majority. This could be the preamble to any quine. (I realize though that, like most physics people, I enjoy waltzing into a specialized domain that I know nothing about and reduce it to first principles. But hey, it's who I am.)
- haskellandchill 3y agoSomeone said similar elsewhere, but the problem is the "meta code" that does the comparison needs to be hardened as well.
- tomxor 3y agoYes, triple redundancy is nice, but then the problem becomes how to make the code that checks the code also tipple redundant and checked without creating another layer to deal with. Most software that does this simply tries to make the test code as small and reliable as possible. But it's an interesting challenge to make the test code somehow self checking with the same properties.
- javajosh 3y agoWell, physically, you really need three independent machines. Which means three copies of the file, three processes, three verifications, and so on, and a way for those processes to communicate with each other and "vote". Then you run into the problem of definition - is a cluster a quine? Note that most of the "primordial bit flip" problems go away if you make N >> 3 and design each machine to "fail fast".
- godelski 3y ago> Isn't the solution to simply duplicate the code and compare it before execution? Do it 3 times and use the majority Yes, voting is a common way to deal with radiation or critical software. There are of course also complications about the voting software itself needing to also be redundant. Some can be done with hardware, or you can just radiation harden parts of the system (reducing overall cost). This is definitely one of those problems where at a quick glance it seems like there's a few simple solutions that can resolve 90% of issues but when you dig into the weeds you find out that 20% dictates most of the outcomes and there's at most a 10% overlap with your quick/obvious solutions.