Tanto multiprocessing.map como joblib usan solo 1 cpu después de la actualización de Ubuntu 10.10 a 12.04

Tenía un código Python que funcionaba perfectamente y que utilizaba un módulo de multiprocesamiento y cargaba las 8 CPU en mi máquina al 100%.

Después de actualizar de Ubuntu 10.10 a 12.04 (lo más evidente, tal vez hice algo más que rompió todo), dejó de funcionar. Después de mucha depuración, encontré que incluso en el caso de uso más simple, ambos módulos solo usan 1 CPU:

from pylab import * import multiprocessing as mp from joblib import Parallel, delayed def f(i): # Slow calculation x = 1 for j in range(100000): x = cos(x) print i, x if __name__ == '__main__': # Try to multiprocess with multiprocessing mp.Pool(processes=8).map(f, range(100)) # Try to multiprocess with joblib Parallel(n_jobs=8)(delayed(f)(i) for i in range(100)) 

Necesito usar las 8 CPU en mi sistema. ¿Alguna idea de lo que debería mirar para solucionar el problema?

EDITAR:

Como señaló ali_m en un comentario aquí y en la respuesta a ¿Por qué el multiprocesamiento usa solo un solo núcleo después de importar número? El problema está relacionado con el numpy funcionamiento con la afinidad de la CPU. Vocación

 os.system('taskset -p 0xffffffff %d' % os.getpid()) 

Antes de hacer cualquier multiprocesamiento resolví el problema por mí.