python,multiprocessing和dmtcp:在Pool中检查一个进程?

时间:2015-02-24 12:02:40

标签: python multiprocessing pool checkpoint

是否可以使用python的dmtcp集成来检查并行执行中的子进程?

我的情况如下:我有一个multiprocessing.Pool,其中有几个工作人员接收异步作业(使用apply_async)。某些作业需要所有资源(cpu核心和内存)。当其中一个工作被接受时,我想检查所有待处理的流程,执行它们,启动大工作并最终恢复检查点流程。

1 个答案:

答案 0 :(得分:0)

如果使用dmtcp_launch python ...dmtcp_launch ./myapp.py启动python程序,主进程创建的所有子进程都将自动受检查点控制。因此,当您尝试从主进程中检查计算时,所有其他进程也会被检查点。

我不太熟悉multiprocessing.Pool在这方面做了详细的评论,但从我在一个快速的时间内理解,你不想检查你的主要进程(调度程序)。但是,DMTCP将检查点重新启动整个计算(包括调度程序)作为单个单元。那可以接受吗?如果没有,替代方法是不在DMTCP控制下启动调度程序,而是修改它以仅启动检查点控制下的子/从进程。我不确定你是否可以在你的申请中做些什么。