GIL e hyperthreading

Chema Cortes py en ch3m4.org
Mie Mar 24 13:24:37 CET 2004


No comprendo del todo bien el mecanismo del "Global Interpreter
Lock" (GIL) para los procesos multihilo (en CPython). Sé que se hace por
conservar el contaje de las referencias a variables, pero no entiendo
porqué bloquear todo el intérprete. ¿No sería factible bloquear sólo el
acceso a una determinada zona "compartida" en lugar de bloquear todo el
intérprete? ¿Realmente es tan complicado eliminar este lock? (Por
ejemplo jython no lo tiene).

Otra pregunta es respecto al hyperthreading del pentium4. Se supone que
engaña al software para que piense que hay dos procesadores, cuando en
realidad sólo hay uno. ¿Pierde rendimiento el intérprete de CPythonen
los cambios de estados en hyperthreading a causa del GIL? ¿Cómo habría
que recompilar python para hyperthreading y linux [0]?

Y como "escape", entiendo que va a resultar mejor utilizar "forking" en
linux en sistemas multiprocesador pero, ¿qué método sería el más
apropiado para intercambiar información entre los procesos sin tener que
echar mano de las bases de datos?


Referencias:
[0] http://www.zaralinux.org/modules.php?name=News&file=article&sid=648


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es