MCPcopy Create free account
hub / github.com/dmtcp/dmtcp

github.com/dmtcp/dmtcp @v4.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.2.0 ↗ · + Follow
3,359 symbols 8,307 edges 335 files 508 documented · 15% updated 5d agov4.2.0 · 2026-06-26★ 466266 open issues

Browse by type

Functions 2,659 Types & classes 700
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DMTCP: Distributed MultiThreaded CheckPointing

Build

DMTCP is a tool to transparently checkpoint the state of multiple simultaneous applications, including multi-threaded and distributed applications. It operates directly on the user binary executable, without any Linux kernel modules or other kernel modifications.

NOTE: This 4.2 release of DMTCP is an interim release. In the near future, DMTCP 5.0 will be released. The main branch of DMTCP at github is for version 5.0, and this release is based on the branch 4.2-dev.

DMTCP supports: * most Linux distros * x86_64, i386, arm64, risc-v * NEW: Checkpointing of host, running CUDA kernels

If you are looking for transparent checkpointing of MPI, please see: * MANA package: https://github.com/mpickpt/mana * MANA documentation: https://mana-doc.readthedocs.io/en/latest/

(MANA is implemented as a plugin on top of DMTCP. MANA stands for MPI-Agnostic Network-Agnostic transparent checkpointing.)

Since DMTCP supports most binaries that use the POSIX C library, DMTCP should also support the following applications: OpenMP, MATLAB, Python, Perl, R, and many programming languages and shell scripting languages. DMTCP also supports GNU screen sessions, including vim/cscope and emacs. With the use of TightVNC, it can also checkpoint and restart X Window applications. For a multilib (mixture of 32- and 64-bit processes), see "./configure --enable-multilib".

To install DMTCP, see INSTALL.md.

For an overview DMTCP, see QUICK-START.md.

For the license, see COPYING.

For more information on DMTCP, see: http://dmtcp.sourceforge.net.

For the latest version of DMTCP (both official release and git), see the "Releases" on the home page at: [https://github.com/dmtcp/dmtcp] (https://github.com/dmtcp/dmtcp)


Finally, there is also an only loosely related package supported by our research group, which shares the philosophy of transparency.

If you are interested in easily debugging applications that use POSIX threads and a transparent model checker, then please also consider * https://github.com/mcminickpt/mcmini * https://mcmini-doc.readthedocs.io/ This finds bugs in deadlock, assertion failures, crashes, etc., by simply running (for example): ./mcmini -f -q -m15 ./a.out [args] ...

This runs directly on the original multithreaded binary executable, without modification. This package has also been classroom-test at the undergraduate level. Feel free to write to @gc00 on github, if you are interested in using this package as a teaching tool for POSIX threads.

Core symbols most depended-on inside this repo

Shape

Function 1,637
Method 1,022
Class 675
Enum 25

Languages

C++66%
C25%
Python10%
Java1%

Modules by API surface

util/cpplint.py171 symbols
test/syscall-tester.c132 symbols
src/syscallsreal.c119 symbols
util/gdb-dmtcp-utils.py71 symbols
src/wrappers.cpp63 symbols
src/plugin/pid/pid_syscallsreal.c59 symbols
src/nosyscallsreal.c59 symbols
contrib/kvm/linux-headers/linux/kvm.h57 symbols
src/plugin/svipc/sysvipc.h53 symbols
src/dmtcp_coordinator.cpp52 symbols
src/plugin/svipc/sysvipc.cpp51 symbols
jalib/jsocket.h51 symbols

For agents

$ claude mcp add dmtcp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page