DMTCP: Scalable User-Level Transparent Checkpointing for Cluster Computations
Jason Ansel, Kapil Arya, Gene D. Cooperman · 2008
As the size of clusters increases, failures are becoming increasingly frequent. Applications must become fault tolerant if they are to run for extended periods of time. We present DMTCP (Distributed MultiThreaded CheckPointing), the first user-level distributed checkpointing package not dependent on a specific message passing library. This contrasts with existing approaches either specific to libraries such as MPI or requiring kernel modification. DMTCP provides fault tolerance through checkpointing. DMTCP transparently checkpoints general cluster computations consisting of many nodes, processes, and threads. DMTCP automatically accounts for TCP/IP sockets, UNIX domain sockets, pipes, ptys (pseudo-terminals), signal handlers, ordinary file descriptors, shared file descriptors, and other operating system artifacts. We demonstrate checkpointing and restart of applications communicating through MPICH2, OpenMPI, and sockets directly. These applications were written with a variety of languages including Fortran, C, C++, and Python. Results show that checkpoint time remains nearly constant as the number of nodes increases. 1