parallelism - ¿Hay un mapa paralelo basado en procesos simple para Python?
python multiprocessing set_start_method (1)
Estoy buscando un mapa paralelo basado en procesos simple para python, es decir, una función
parmap(function,[data])
eso funcionaría en cada elemento de [datos] en un proceso diferente (bueno, en un núcleo diferente, pero AFAIK, la única forma de ejecutar cosas en diferentes núcleos en python es iniciar múltiples intérpretes), y devolver una lista de resultados .
Existe algo como esto? Me gustaría algo simple , por lo que un módulo simple sería agradable. Por supuesto, si no existe tal cosa, me conformaré con una gran biblioteca: - /
Parece que lo que necesitas es el método de mapa en multiprocesamiento. Pool () :
mapa (func, iterable [, chunksize])
A parallel equivalent of the map() built-in function (it supports only one iterable argument though). It blocks till the result is ready. This method chops the iterable into a number of chunks which it submits to the process pool as separate tasks. The (approximate) size of these chunks can be specified by setting chunksize to a positive integ
Por ejemplo, si desea asignar esta función:
def f(x):
return x**2
para el rango (10), puede hacerlo utilizando la función incorporada map ():
map(f, range(10))
o utilizando un mapa de método de objeto multiprocesamiento.Poll () ():
import multiprocessing
pool = multiprocessing.Pool()
print pool.map(f, range(10))