Divide-and-conquer checkpointing for arbitrary programs with no user annotation. (2nd November 2018)