Python 分布式线程池

Python distributed ThreadPool

是否有任何 Python ThreadPool 包(多处理、pathos)在多个 cpu 之间分配工作线程?如果不需要,我是否需要创建一个 ProcessPool,然后在每个 ProcessPool worker 上创建一个 ThreadPool?

我是 pathos 的作者。 multiprocessing 有一个 Pool 可以将作业分配给多个 cpu。这是一个示例(使用 multiprocess,它是 multiprocessing 的一个分支,具有更好的序列化):

>>> import multiprocess as mp
>>> mp.Pool().map(lambda x:x, range(4))
[0, 1, 2, 3]
>>> 

pathospathos.pools.ProcessPool 中使用 multiprocess。还有 pathos.pools.ParallelPool(来自 ppft)可以通过分布式计算(不在同一台机器上)生成作业。

如果您正在寻找分层池(即 ThreadPoolProcessPool),那么您应该为此使用 pathos。参见此处: and and .

但是,您可以使用 multiprocessing...但我认为不再允许这样做: