Can we put concurrency back into redundant multithreading?
Can we put concurrency back into redundant multithreading?
复制标题
我们可以将并发性重新引入冗余多线程吗?
DOI:
10.1145/2656045.2656050
复制
发表时间:
2014
期刊:
影响因子:
--
通讯作者:
Hermann Härtig
中科院分区:
文献类型:
--
作者:
Björn Döbel;Hermann Härtig
Software-implemented fault tolerance (SIFT) mechanisms allow to tolerate transient hardware faults in commercial off-the-shelf (COTS) systems without using specialized resilient hardware. Unfortunately, existing SIFT methods at both the compiler and the operating system levels are often restricted to single-threaded applications and hence do not apply to multithreaded software on modern multicore platforms. We present RomainMT, an operating system service that provides replication for unmodified multithreaded applications. Replicating these programs is challenging, because scheduling-induced non-determinism may cause replicated threads to execute different valid code paths. This complicates the distinction between valid behavior and the effects of hardware errors. RomainMT solves these problems by transparently making multithreaded execution deterministic. We present two alternative mechanisms that differ in the assumptions made about the respective applications and investigate their performance implications. Our evaluation using the SPLASH2 benchmark suite shows that the overhead for triple-modular redundancy (TMR) is 24% for applications with two application threads and 65% for four application threads.