Существует ли простая основанная на процессе параллельная карта для Python?

Первый (формат) выглядит лучше мне. Это более читаемо, и Вы не создаете дополнительные временные строковые объекты.

62
задан static_rtti 9 November 2009 в 22:33
поделиться

1 ответ

Мне кажется, что вам нужен метод map в многопроцессорной обработке.Pool () :

map (func, iterable [, chunksize])

 A параллельный эквивалент встроенной функции map () (поддерживает только
хотя один итеративный аргумент). Блокирует, пока не будет готов результат.

Этот метод разбивает итерируемый объект на несколько частей, которые он отправляет в 
пул процессов как отдельные задачи. (Приблизительный) размер этих фрагментов может быть
задается установкой chunksize в положительное целое

Например, если вы хотите отобразить эту функцию:

def f(x):
    return x**2

в диапазон (10), вы можете сделать это, используя встроенную функцию map ():

map(f, range(10))

или используя метод объекта multiprocessing.Pool () map ():

import multiprocessing
pool = multiprocessing.Pool()
print pool.map(f, range(10))
110
ответ дан 24 November 2019 в 16:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: