Цитируя Википедию, контрольная точка "в основном состоит из сохранения моментального снимка текущего состояния приложения, а затем , используйте его для перезапуска выполнения в случае сбоя."
Мне нужно проверить и возобновить научное приложение C++ (которое мы написали). Программа однопоточная и не зависит от других запущенных приложений: без графического интерфейса, без сети, без конвейеров, без разветвлений и т. д. Все, что она делает, это расчеты и файл ввод/вывод.
В Linux DMTCP отлично работает для меня. Он даже не требует модификации исходного кода или повторной компоновки. BLCR и Condor также поддерживают контрольные точки в Linux.
В ближайшее время мне предстоит запустить приложение на Windows. Я искал вокруг и не смог найти ни одной библиотеки контрольных точек для Windows. В принципе, я мог бы модифицировать приложение так, чтобы оно сбрасывало свое состояние на диск по запросу и перезагружало данные при следующем запуске. Однако из-за сложности приложения это требует больших усилий даже с помощью библиотек сериализации.
Итак, есть ли какая-либо библиотека контрольных точек C/C++ в Windows? Совершенно нормально, если библиотека требует изменений в моем коде. В идеале библиотека позволила бы мне создавать контрольные точки по запросу (например, путем отправки сигнала/сообщения), а не сохранять состояние только в определенных точках кода.
(Мне известны похожие вопросы, в которых говорится, что контрольные точки обычно невозможны. Однако в моем случае это возможно, и я я делал это все время в Linux.)