引用维基百科,checkpointing “基本上包括存储当前应用程序状态的快照,稍后,在出现故障时使用它重新启动执行。”
我需要检查点并恢复 C++ 科学应用程序(我们编写的)。该程序是单线程,不依赖于其他正在运行的应用程序:没有 GUI,没有网络,没有管道,没有 fork 等。它所做的只是计算和文件输入/输出。
在 Linux 上,DMTCP对我来说效果很好。它甚至不需要修改源代码或重新链接。 BLCR 和 Condor 也支持 Linux 上的检查点。
在不久的将来,我将不得不在 Windows 上运行该应用程序。我四处搜索,找不到任何适用于 Windows 的检查点库。原则上,我可以修改应用程序,使其根据请求将其状态转储到磁盘上,并在下次运行时重新加载数据。然而,由于应用程序的复杂性,即使借助序列化库,这也需要付出很多努力。
那么,Windows 上有任何 C/C++ 检查点库吗? 如果库需要修改我的代码,那完全没问题。理想情况下,该库允许我根据请求(例如,通过发送信号/消息)检查点,而不是只能在代码中的特定点保存状态。
(我知道 similar questions 说检查点通常是不可能的。但是,我的情况是可能的,而且我一直在 Linux 上这样做。)
最佳答案
尝试将您的程序构建为共享库,并从内部因素或 sbcl 中调用它。然后使用其中任何一个的构建检查点功能。
关于windows - Windows 上的检查点(快照/恢复)库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711243/