The future of super-computing depends on our ability to cope with errors. Increasing machine size and decreasing operating voltage generate soft errors (bit flips) and hard errors (component failure). Hardware trends imply at least two errors per minute on next generation (exascale) supercomputers. If a CPU or GPU breaks down, the computed results must remain trustworthy. The high performance computing and the theory of computing communities have been addressing this challenge for more than two decades. Most solutions are either
(i) general purpose, requiring little to no algorithmic effort, but severely degrade performance (e.g. checkpoint-restart), or (ii) tailored to specific applications, very efficient, but significantly increasing programmers’ workload.
We propose a novel approach that achieves the best of both worlds: high performance and general purpose fault resilience. Objectives include: (1) Pushing the limits of resilience-enabling building blocks. (2) Developing low-overhead algorithmic tools that are as widely applicable as possible. (3) Improving usability and exposing automating opportunities.