  We present the concept of approximate intermittent computing and demonstrate
its application. Intermittent computations stem from the erratic energy
patterns caused by energy harvesting: computations unpredictably terminate
whenever energy is insufficient. Existing solutions maintain equivalence to
continuous executions by creating persistent state. The performance penalty is
massive: system throughput reduces while energy consumption increases.
Approximate intermittent computations trade the accuracy of the results for
sparing the entire overhead to maintain equivalence to a continuous execution.
We use approximation to limit the extent of stateful computations to the single
power cycle, enabling the system to shift the energy budget for managing
persistent state towards an immediate approximate result. First, we apply
approximate intermittent computing to human activity recognition. We design an
anytime variation of support vector machines able to improve the accuracy of
the classification as energy is available. We build a hw/sw prototype using
kinetic energy and show a 7x improvement in system throughput compared to state
of the art, while retaining 83% accuracy in a setting where the best attainable
accuracy is 88%. Next, we apply approximate intermittent computing in a sharply
different scenario, that is, embedded image processing, using loop perforation.
Using a different hw/sw prototype we build and diverse energy traces, we show a
5x improvement in system throughput compared to state of the art, while
providing an equivalent output in 84% of the cases.
