Blocking and non-blocking coordinated checkpointing for large scale MPI computation