2009-07-22 16 views
6

Para asegurar la calidad en una estación de trabajo crítica de varios núcleos (8), quiero ejecutar el mismo código en diferentes procesadores pero no en paralelo o concurrentemente.Ejecutando el código de Python en diferentes procesadores

Necesito ejecutarlo 8 veces, una ejecución para cada procesador.

Lo que no sé es cómo seleccionar el procesador que quiero.

¿Cómo se puede lograr esto en Python?

+5

Creo que debe incluir los sistemas operativos a los que se dirige. La programación en las CPUs está fuera del alcance de Python en su mayor parte (por lo que se omite llamar al sistema operativo para hacer la programación, por supuesto). – Erik

+0

Está en Linux Fedora. Gracias por el comentario! – proportional

Respuesta

4

En Linux con schedutils, creo que tendría que utilizar taskset-c X python foo.py para ejecutar ese proceso específico de Python en la CPU X (exactamente cómo identificar sus CPUs pueden variar, pero creo que los números tales como 1, 2, 3, .. . debería funcionar en cualquier lugar). Estoy seguro de que las versiones de Windows, BSD, etc. tienen comandos similares para admitir la asignación directa del procesador, pero no los conozco.

3

Qué proceso va en qué núcleo es normalmente decidido por su sistema operativo. En Linux hay un conjunto de tareas del paquete schedutils para ejecutar explícitamente un programa en un procesador.

Python 2.6 tiene un módulo de multiprocessing que toma las funciones de Python y los ejecuta en procesos separados, probablemente mover cada nuevo proceso para un núcleo diferente.

Cuestiones relacionadas