Efficient selective replication of critical code regions for SDC mitigation leveraging redundant multithreading - ARSLAN YILMAZ, SANEM (SPRINGER, 2021)
Redundant multithreading (RMT) is an effective reliability solution that provides thread-level replication; however, it imposes additional overheads in terms of performance loss or energy consumption. Partial-RMT is an alternative solution that provides partial redundancy of an executing thread to reduce such overheads while trading off full coverage from faults. In this study, we propose a software-level RMT approach that offers lightweight replication of partial code regions within the same application process. Our software-level RMT approach is particularly suitable for applications with varying code criticality, where we determine the critical code regions by performing a fault injection campaign in addition to execution time profile analysis. Using the results of the previous step, the application programmer annotates the source code to indicate the specific code regions that should be executed redundantly without re-implementing the application program from scratch. Our lightweight software-level RMT tool improves the average silent data corruption (SDC) rate of 30 applications of the PolyBench benchmark suite by around 7.6x with average performance and energy consumption overheads of 22 and 37%, respectively, compared to the original version of the program.
Keywords: Redundant multithreading; Fault tolerance; Soft error reliability; Software reliability