The CPPC Project

Controller/comPiler for Portable Checkpointing

CPPC Project Documentation

CPPC (ComPiler for Portable Checkpointing) is a checkpointing tool focused on the insertion of fault tolerance into long-running message-passing applications. It is designed to allow for execution restart on different architectures and/or operating systems, also supporting checkpointing over heterogeneous systems, such as the Grid. It uses portable code and protocols, and generates portable checkpoint files while avoiding traditional solutions which add an unscalable overhead (such as process coordination or message-logging).

CPPC is made up of a library and a compiler. The library contains routines for variable-level checkpointing. The compiler translates a parallel code annotated with user directives into fault tolerant code with CPPC library calls. It also includes compile-time analysis to automatize the insertion of these directives.


If you are coming from CPPC v0.7.2 and want to upgrade to CPPC v0.8.x, please follow this migration guide.

The following links contain the full CPPC 0.8.1 documentation. If you are interested in older versions of these docs, please read the enclosed README files.

  1. Introduction
  2. Obtaining CPPC
  3. Installation
  4. Using CPPC
  5. Semantic descriptions of function files
  6. Example application
  7. CPPC Compiler
  8. Known Issues
  9. Copyright Notices
  10. License