2010-12-23 19 views

Respuesta

12

Tiene que programar explícitamente para múltiples núcleos. Vea las opciones de multiprocesamiento simétrico en this page para las numerosas soluciones de procesamiento paralelo en Python. Parallel Python es una buena opción si no puede molestarse en comparar las opciones, consulte los ejemplos here.

Sin embargo, algunos problemas no pueden aprovechar los múltiples núcleos. Piensa en cómo podrías subir las escaleras más rápido con la ayuda de tres amigos. ¡No va a pasar!

4

Me pregunto por qué nadie mencionó GIL de CPython (Global Interpreter Lock) todavía. Básicamente, significa que varios hilos dentro de un intérprete de Python no pueden usar la potencia de múltiples núcleos porque muchas operaciones están protegidas por un bloqueo global para que sea seguro para la ejecución de subprocesos. Esto solo se aplica a una pequeña cantidad de aplicaciones: las vinculadas a la CPU. Para obtener más información, simplemente busque el término "GIL", ya hay muchas preguntas sobre él (como that one, por ejemplo).

Esta respuesta, por supuesto, asume que de hecho está utilizando múltiples hilos, de lo contrario no podrá usar múltiples núcleos de todos modos (multiprocessing sería otra posibilidad).

Cuestiones relacionadas