Por que a operação get () no multiprocessing.Pool.map_async demora tanto?
import multiprocessing as mp
import numpy as np
pool = mp.Pool( processes = 4 )
inp = np.linspace( 0.01, 1.99, 100 )
result = pool.map_async( func, inp ) #Line1 ( func is some Python function which acts on input )
output = result.get() #Line2
Então, eu estava tentando paralelizar algum código em Python, usando um.map_async()
método em ummultiprocessing.Pool()
instância.
Eu notei que enquantoLine1
leva cerca de um milésimo de segundo,Line2
leva cerca de 0,3 segundos.
Existe uma maneira melhor de fazer isso ou uma maneira de contornar o gargalo causado porLine2
,
ou
estou fazendo algo errado aqui?
(Eu sou bastante novo nisso.)