Python3 Joblib-Comienza usando múltiples núcleos, cae a un solo núcleo

Prefiero esto diciendo que soy nuevo en el procesamiento paralelo. Estoy trabajando para mejorar, pero no puedo encontrar una respuesta a mi problema, que parece ser bastante único.

Tengo problemas con este código:

from joblib import Parallel
import multiprocessing

n_cores = multiprocessing.cpu_count()
Parallel(n_jobs=n_cores)(delayed(blexon)(gene,genomes) for gene in genes)

'genes' y 'genomas' son listas de cadenas. En mi lista de genes, puedo tener cientos de genes. Estoy usando Parallel para ejecutar este proceso en todos estos genes, ¡y esto funciona! Si considera que los genes se ejecutan al mismo tiempo que los conjuntos, entonces para los primeros 'conjuntos' puedo usar todos los núcleos de mi computadora. Sin embargo, después de algunos conjuntos, el programa solo usa un núcleo. Si tengo 12 núcleos, 12 genes se ejecutarán simultáneamente durante algunas iteraciones establecidas, pero en algún momento, solo se ejecutará un gen.

He encontrado información sobre Parallel usando solo un núcleo con scipy (que uso en este script), pero este es un comportamiento extraño: usa todos los núcleos temporalmente antes de cambiar a usar un solo núcleo.

No estoy seguro de cómo solucionar este problema. ¿Alguien tiene alguna entrada?

Gracias.

Sistema: Ubuntu 16.04 LTS Python 3.5.2 joblib 0.9.4

---EDITAR---

Aquí está el bit de código que usé para tratar de abordar el problema de afinidad de la CPU:

p = psutil.Process(os.getpid())
print(p.cpu_affinity())
p.cpu_affinity(range(multiprocessing.cpu_count()))
print(p.cpu_affinity())

Salida: (Esta computadora tiene 12 núcleos)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

--EDITAR--

Después de ver htop mientras el programa se está ejecutando (cada iteración puede tomar unos minutos), encuentro que la cantidad de núcleos disminuye gradualmente. Comencé con 12 núcleos, y después de este conjunto, tengo 11 núcleos funcionando en paralelo.

Respuestas a la pregunta(0)

Su respuesta a la pregunta