set_start_method parallelism parallel example python parallel-processing smp

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))