【问题标题】:python, multiprocessing and dmtcp: checkpointing one process in Pool?python,多处理和dmtcp:检查池中的一个进程?
【发布时间】:2015-02-24 12:02:39
【问题描述】:

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

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

【问题讨论】:

    标签: python multiprocessing pool checkpoint


    【解决方案1】:

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

    我不太熟悉 multiprocessing.Pool 在这方面制作详细的 cmets,但根据我在一分钟内了解的情况,您不想检查您的主进程(调度程序)。但是,DMTCP 将检查点重新启动整个计算(包括调度程序)作为一个单元。这可以接受吗?如果不是,另一种方法是不在 DMTCP 控制下启动调度程序,而是将其修改为仅在检查点控制下启动子/从属进程。我不确定这是否可以在您的应用程序中执行。

    【讨论】:

    • 非常感谢您的回答,我明白您的意思。大多数任务都可以在检查点控制下自行运行,所以我会先尝试完成。
    猜你喜欢
    • 2022-01-08
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    相关资源
    最近更新 更多