¿Cómo limitar el uso de núcleos de Python a nivel mundial en Ubuntu?

¿Hay algún parámetro global (preferiblemente variable env) que se pueda configurar para limitar los núcleos máximos utilizados por Python? Sé que hay parámetros para configurar paquetes específicos como multithreading o numpy, pero me gustaría controlar Python para que esté seguro de que no utilizará más de N núcleos.

La razón por la que me gustaría un parámetro global es para poder establecerlo en usuarios de mi red para que podamos trabajar juntos en la misma máquina; Actualmente, cada vez que uno ejecuta un script, Python solo utiliza la mayoría de los núcleos que puede, atascando a los demás.

Python versión 2.6-7, Ubuntu versión 14.04.

Gracias.

utilizando el paquete de afinidad puede limitar cada proceso en un nivel de sistema operativo a un solo núcleo. la afinidad simplemente llama a la función subyacente de linux_setaffinity de Linux, puede establecerla en un número de núcleo específico o en un rango.

import affinity import os pid = os.getpid() affinity.set_process_affinity_mask(pid, 1) # 1 is the first core affinity.set_process_affinity_mask(pid, 2) # 2 is the second core 

consulte la página del manual de pthread_setaffinity_np para obtener más detalles sobre cómo establecer rangos de núcleos, observe que si desea establecer la afinidad de otros procesos, debe tener permisos para administrar ese proceso. Además, observe que los procesos de los hijos heredan la afinidad del proceso del padre.