Я pathos
автор.multiprocessing
имеет Pool
, который будет распределять задания по нескольким процессорам.Вот пример (используя multiprocess
, который является форком multiprocessing
с лучшей сериализацией):
>>> import multiprocess as mp
>>> mp.Pool().map(lambda x:x, range(4))
[0, 1, 2, 3]
>>>
pathos
использует multiprocess
в pathos.pools.ProcessPool
.Также есть pathos.pools.ParallelPool
(из ppft
), который может порождать задания с распределенными вычислениями (не на одном компьютере).
Если вы хотите создать иерархический пул (то есть ThreadPool
и ProcessPool
), тогда вы должны использовать pathos
для этого.Смотрите здесь: https://stackoverflow.com/a/28491924/2379433 и https://stackoverflow.com/a/28613077/2379433 и https://stackoverflow.com/a/40852258/2379433.
Однако вы можете сделать это с помощью multiprocessing
... но я думаю, что это больше не разрешено: https://stackoverflow.com/a/8963618/2379433