According to Fault-Tolerant Systems (Chapter 6) written by Israel Koren and C. Mani Krishna:
A checkpoint is a snapshot of the entire state of the process at the moment it was taken. It represents all the information that we would need to restart the process from that point. We record the checkpoint on stable storage.
Checkpointing is a common fault-tolerance technique. I intend to test how taking checkpoints work in practice by implementing them in the source code of different MPI programs written in C++. This is my first time implementing checkpoints and I don't know how to do it. I am looking for an example or any reference that can help me. I googled it but didn't find a helpful reference or tutorial. Any suggestion is much appreciated.