Skip to content

Coordinate DMTCP checkpoint strategies from an Erlang port interface

License

Notifications You must be signed in to change notification settings

uselessd/edmtcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

edmtcp

edmtcp is a simple Erlang port interface that makes use of DMTCP to do per-process management of application checkpoint/restore images.

By default, DMTCP's unit of granularity is based on handling whole computations rather than individual processes. edmtcp launches a new coordinator for every launched binary, with its port number written to /usr/local/share/edmtcp (by default, currently hardcoded), as well as storing all gzipped checkpoint images there.

No default interval is set, it must be set manually or checkpoints done manually.

It is currently quite rudimentary, and will be seeing significant polish. A more sophisticated strategy for storing and rotating checkpoint images will be added, along with more dynamic configuration.

Build

$ rebar3 compile

Example session

Erlang/OTP 18 [erts-7.0] [source] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V7.0 (abort with ^G)

1> application:start(edmtcp). ok 2> edmtcp:launch("/bin/cat"). #Port<0.15755> 3> edmtcp:status("/bin/cat"). Coordinator: Host: localhost Port: 58546 Status... NUM_PEERS=1 RUNNING=yes CKPT_INTERVAL=0 (checkpoint manually) ok 4> edmtcp:set_interval("/bin/cat", 100). Interval changed to 100 ok 5> edmtcp:terminate("/bin/cat", quit). %% setting second arg to [] calls --kill ok 6> edmtcp:flush_share(). ok

License

MPLv2.

About

Coordinate DMTCP checkpoint strategies from an Erlang port interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages