  Systematic checkpointing of the machine state makes restart of execution from
a safe state possible upon detection of an error. The time and energy overhead
of checkpointing, however, grows with the frequency of checkpointing.
Amortizing this overhead becomes especially challenging, considering the growth
of expected error rates, as checkpointing frequency tends to increase with
increasing error rates. Based on the observation that due to imbalanced
technology scaling, recomputing a data value can be more energy efficient than
retrieving (i.e., loading) a stored copy, this paper explores how recomputation
of data values (which otherwise would be read from a checkpoint from memory or
secondary storage) can reduce the machine state to be checkpointed, and thereby
reduce the checkpointing overhead. Specifically, the resulting amnesic
checkpointing framework AmnesiCHK can reduce the storage overhead by up to
23.91%; time overhead, by 11.92%; and energy overhead, by 12.53%, respectively,
even in a relatively small scale system.
