Python распространяет ThreadPool - PullRequest
0 голосов
/ 12 февраля 2019

Распределяет ли какой-либо из пакетов Python ThreadPool (многопроцессорность, пафос) рабочие потоки по нескольким процессорам?Если нет, мне нужно создать ProcessPool, а затем создать ThreadPool для каждого рабочего ProcessPool?

1 Ответ

0 голосов
/ 12 февраля 2019

Я 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

...