16th Annual International Symposium on High Performance Computing Systems and Applications
Compiler Support for Automatic Checkpointing
Moncton, NB, Canada
June 16-June 19
ISBN: 0-7695-1626-2
Checkpointing is a key technology for applications on large cluster computer systems. As cluster sizes grow, component failures will become a normal part of operation, and applications will have to deal more directly with repeated failures during program runs. In this paper, we describe automatic checkpointing in the ZPL compiler and its advantages over traditional library-or system-based approaches that have no information about application behavior. We show that even naive compiler-inserted checkpoints can significantly reduce the size of the checkpoint recovery data, up to 73% in our application suite. We also introduce the notion of checkpoint ranges, a range of code where processors can perform a local checkpoint at any time during the range. The compiler guarantees that these local checkpoints form a globally consistent checkpoint without global coordination by ensuring that there are no in- flight messages during the checkpoint range. Checkpoint ranges help further alleviate any additional network congestion caused by checkpointing.