En Python, el módulo multiprocessing
se puede utilizar para ejecutar una función en un rango de valores en paralelo. Por ejemplo, esto produce una lista de las primeras 100000 evaluaciones de f.Multiproceso de Python una función con varias entradas
def f(i):
return i * i
def main():
import multiprocessing
pool = multiprocessing.Pool(2)
ans = pool.map(f, range(100000))
return ans
¿Se puede hacer algo similar cuando f toma múltiples entradas pero solo se varía una variable? Por ejemplo, ¿cómo se paralelizar esto:
def f(i, n):
return i * i + 2*n
def main():
ans = []
for i in range(100000):
ans.append(f(i, 20))
return ans
Thils * no * trabajará con el mapa de multiprocesamiento, porque eso no admite funciones que no son "importables" (usando la herramienta de pickle) – Lagerbaer