Python的multiprocessing.Pool支持远程子进程吗?

5 投票
1 回答
3011 浏览
提问于 2025-04-16 15:28

我最近发现,Pool.map() 在处理简单的多进程任务时非常好用,但我本地的电脑只有两个处理器,我希望能利用一些远程计算资源。

有没有办法建立一个处理池,让它可以同时使用本地和远程的机器,而且使用起来就像在本地一样简单?

我需要在远程机器上运行什么样的 Python 代码?我该如何在本地(主)机器上设置这个处理池呢?

多进程的文档页面上说,管理器(Managers)是用来处理共享对象的,但我不太明白它们应该如何用于远程的处理池。除了管理器,似乎没有其他东西提到端口和地址,所以我猜所有的远程操作都是通过这个类来进行的。

1 个回答

2

multiprocessing.Pool 这个东西似乎不是为了分布式处理而设计的。如果你想做分布式处理,我建议你看看 execnet 这个包。它通过SSH管道工作,如果需要的话,可以把代码发送到远程的Python解释器上。

撰写回答