¿Por qué la piscina multiproceso es más lenta que un bucle for?
from multiprocessing import Pool
def op1(data):
return [data[elem] + 1 for elem in range(len(data))]
data = [[elem for elem in range(20)] for elem in range(500000)]
import time
start_time = time.time()
re = []
for data_ in data:
re.append(op1(data_))
print('--- %s seconds ---' % (time.time() - start_time))
start_time = time.time()
pool = Pool(processes=4)
data = pool.map(op1, data)
print('--- %s seconds ---' % (time.time() - start_time))
Obtengo un tiempo de ejecución mucho más lento con el grupo que con el bucle. ¿Pero no se supone que pool está usando 4 procesadores para hacer el cálculo en paralelo?