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]
>>>
pathos
在 pathos.pools.ProcessPool
中使用 multiprocess
。还有 pathos.pools.ParallelPool
(来自 ppft
)可以通过分布式计算(不在同一台机器上)生成作业。
如果您正在寻找分层池(即 ThreadPool
和 ProcessPool
),那么您应该为此使用 pathos
。参见此处: and and .
但是,您可以使用 multiprocessing
...但我认为不再允许这样做:
是否有任何 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]
>>>
pathos
在 pathos.pools.ProcessPool
中使用 multiprocess
。还有 pathos.pools.ParallelPool
(来自 ppft
)可以通过分布式计算(不在同一台机器上)生成作业。
如果您正在寻找分层池(即 ThreadPool
和 ProcessPool
),那么您应该为此使用 pathos
。参见此处:
但是,您可以使用 multiprocessing
...但我认为不再允许这样做: