HarmonyFidelisHarmonyFidelis
Iniciar sesión
ActualidadGrandes proyectosActoresAcademia

Python 3.13: el GIL pasa a ser opcional (modo free-threading experimental)

La versión 3.13 de Python introduce el modo Free-threaded, que permite ejecutar hilos en verdadero paralelo en arquitecturas multinúcleo.

Source: peps.python.org

Python 3.13: el GIL pasa a ser opcional (modo free-threading experimental)

La fundación Python publicó Python 3.13 a principios del mes de octubre de 2024. La evolución técnica principal de esta versión es la introducción del modo «Free-threaded» definido en la implementación de la PEP 703, que desactiva el GIL (Global Interpreter Lock).

En claro

Hasta ahora, un intérprete de Python funcionaba como una sala por la que circula un único micrófono: podían coexistir varios hilos, pero solo uno tomaba la palabra a la vez, porque el GIL les impedía ejecutar bytecode simultáneamente. En una máquina con varios núcleos, eso equivalía a dejar sin utilizar parte de la potencia disponible en cuanto un programa intentaba calcular en paralelo. Python 3.13 hace que ese bloqueo sea opcional: ahora el intérprete puede compilarse de manera que reparta la carga de cálculo entre todos los núcleos físicos disponibles, sin crear un bloqueo. La reserva es importante: la funcionalidad se propone con carácter experimental, el GIL permanece activo de forma predeterminada y las bibliotecas desarrolladas en C deben adaptarse. Se trata, por tanto, del comienzo de una transición, no de un cambio inmediato.

Ficha de la versión

ParámetroValor
VersiónPython 3.13
Editorfundación Python
Publicaciónprincipios del mes de octubre de 2024
Evolución técnica principalintroducción del modo «Free-threaded»
EspecificaciónPEP 703 — Making the Global Interpreter Lock Optional in CPython
Efecto técnicodesactivación del GIL (Global Interpreter Lock)
Puesta en prácticacompilación del intérprete por parte del desarrollador
Estadoexperimental — el GIL permanece activo de forma predeterminada
Requisito del ecosistemaadaptación de las bibliotecas desarrolladas en C
Alcance previstoejecución de hilos en verdadero paralelo en arquitecturas multinúcleo

Explicación técnica

1. Lo que bloqueaba el GIL — Históricamente, el GIL impedía que varios hilos de un mismo intérprete de Python ejecutaran bytecode simultáneamente.

2. El coste en los procesadores multinúcleo — Esta restricción limitaba fuertemente el rendimiento de las aplicaciones en paralelo en procesadores multinúcleo.

3. Lo que permite el modo Free-threaded — Con esta versión, los desarrolladores tienen la posibilidad de compilar el intérprete de manera que reparta la carga de cálculo entre todos los núcleos físicos disponibles, sin crear un bloqueo.

Antes y después

AspectoIntérprete con GILModo Free-threaded (Python 3.13)
Ejecución del bytecodeun solo hilo de un mismo intérprete a la vezhilos en verdadero paralelo
Núcleos aprovechadosrendimiento de las aplicaciones en paralelo fuertemente limitado en procesadores multinúcleocarga de cálculo repartida entre todos los núcleos físicos disponibles
Bloqueobloqueo global sobre la ejecución del bytecodeningún bloqueo introducido
Activacióncomportamiento predeterminadocompilación específica del intérprete, con carácter experimental
Bibliotecas desarrolladas en Ccomportamiento históricoadaptación necesaria

Cadena causal

GIL presente históricamente en el intérprete → un solo hilo ejecuta bytecode a la vez → rendimiento de las aplicaciones en paralelo fuertemente limitado en procesadores multinúcleo → PEP 703: hacer que el bloqueo sea opcional → Python 3.13 introduce el modo Free-threaded → el intérprete puede compilarse para repartir el cálculo entre todos los núcleos físicos disponibles → adaptación de las bibliotecas desarrolladas en C → transición del ecosistema Python hacia una plena optimización multinúcleo

Límites y alcance

Aunque esta funcionalidad se propone con carácter experimental (el GIL permanece activo de forma predeterminada) y exige la adaptación de las bibliotecas desarrolladas en C, esta publicación inicia la transición del ecosistema Python hacia una plena optimización multinúcleo.

Fuentes

Referencias verificadas durante la auditoría factual de agosto de 2026: son las páginas
con las que se han contrastado las afirmaciones de este boletín.

  1. PEP 703 — Making the Global Interpreter Lock Optional in CPython
  2. What's New In Python 3.13 — documentación oficial
  3. Python 3.13.0 release — python.org