No se puede encurtir la función

Así que estoy tratando de acelerar mi tiempo de cómputo haciendo un poco de multiprocesamiento

Estoy tratando de usar los trabajadores de la piscina.

En la parte superior de mi código tengo

import Singal as s import multiprocessing as mp def wrapper(Channel): Noise_Frequincies = [] for i in range(1,125): Noise_Frequincies.append(60.0*float(i)) Noise_Frequincies.append(180.0) filter1 = s.Noise_Reduction(Sample_Rate,Noise_Frequincies,Channel) return filter1 

Entonces cuando llegue el momento lo uso.

 Both_Channels = [Chan1, Chan2] results = mp.Pool(2).map(wrapper,Both_Channels) filter1 = results[0] filter2 = results[1] 

Obtuve el siguiente error

 Exception in thread Thread-2: Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 808, in __bootstrap_inner self.run() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 761, in run self.__target(*self.__args, **self.__kwargs) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 342, in _handle_tasks put(task) PicklingError: Can't pickle : attribute lookup __builtin__.function failed 

Chan1 y Chan2 son matrices de mi señal, y estoy tratando de filtrar un poco de ruido de cada una. Soy nuevo en el multiprocesamiento, así que me disculpo si este es un error estúpido

Marqué esta pregunta como un dup de esa Q / A , y para resumir: no puedes encoger funciones, y eso es lo que intentas hacer cuando pasas el wrapper() a Pool().map() . Para seleccionar funciones, necesita usar copy_reg, como se muestra en este ejemplo .

“Las clases, funciones y métodos no pueden ser decapados: si usted decapea un objeto, la clase del objeto no es decapada, solo una cadena que identifica a qué clase pertenece” (cf doc )

No uso clases personalizadas, y ahí es donde está su problema (al menos por lo que puedo decir)

no, su problema es que estaba tratando de encurtir un método de instancia, que está relativamente cerca de una función, ya que ambos no pueden ser encurtidos. Y la solución para esa A debería funcionar para ti también.

Aunque no lo probé …

HTH