An automated performance-aware approach to reliability transformations
Paper in proceedings, 2014
Soft errors are expected to increase as feature sizes shrink and the number of cores increases. Redundant execution can be used to cope with such errors. This paper deals with the problem of automatically finding the number of redundant executions needed to achieve a preset reliability threshold. Our method uses geometric programming to calculate the minimal reliability for each instruction while still ensuring that the reliability of the program satisfies a given threshold. We use this to approximate an upper bound on the number of redundant instructions. Using this, we perform a limit study to find the implications of different redundant execution schemes. In particular we notice that the overhead of higher redundancy has serious implications to reliability. We therefore create a scheme where we only perform more executions if needed. Applying the results from our optimization improves reliability by up to 58.25%. We show that it is possible to achieve up to 8% better performance than Triple Modular Redundancy (TMR). We also show cases where our approach is insufficient.
High performance computing