Escalando NumPy en Python sin bloqueo global

Scaling NumPy on Free-Threaded Python

El equipo de Quansight comparte su experiencia haciendo que NumPy sea compatible con el modo de Python sin GIL (free-threaded). Explican los retos de paralelizar operaciones numéricas sin el bloqueo global, las optimizaciones implementadas y los resultados de rendimiento obtenidos. Una guía técnica para quienes buscan aprovechar al máximo los núcleos de CPU en entornos de cómputo científico.

El rendimiento de NumPy en modo free-threaded puede superar al de la versión tradicional en operaciones que antes estaban limitadas por el GIL.
  1. w-m

    Está muy bien escrito. Pude seguirlo sin problemas, desde la configuración hasta los cuellos de botella y la resolución del bug de rendimiento. Incluso los pull requests son muy agradables de leer: la mayoría son solo un puñado de líneas cambiadas con tests añadidos y un poco de documentación.

    Me sorprendió un momento que este trabajo se originara a partir de un informe en StackOverflow. Pensaba que SO estaba efectivamente muerto y abandonado por su comunidad. Pero quizás no debería proyectar mi propia experiencia sobre los demás.

  2. frollogaston

    Pensaba que NumPy ya liberaba el GIL. En Python normal sin free-threading, puedes ejecutar operaciones paralelas de Numpy con hilos y tener varios núcleos al 100%, me he basado en eso. Quizás no sea el caso con las operaciones en las que se centra este artículo (sin/cos).

  3. tialaramex

    > solo adquirir el bloqueo cuando la bandera necesita ser actualizada

    No tengo claro por qué necesitas el bloqueo en ese caso. La idea de que esta bandera pueda actualizarse durante la ejecución y afecte al funcionamiento del software cuando está activada parece chocar con la idea de que no necesitamos tomar ninguna acción tras haber realizado una carga relajada (es decir, sin sincronizar) y haber visto que no estaba activada en algún momento anterior.

    Quizás hay algo que no entiendo sobre estos internals, que puede ser tan simple como "Es solo informativo, así que si no rastreamos cuándo deberíamos, no pasa nada".

Más de este día

2026-08-05