GIL e hyperthreading

Chema Cortes ch3m4 en ch3m4.org
Mie Mar 24 12:15:12 CET 2004


Estas preguntas son demasiado técnicas, y son más un "devaneo" mental 
que otra cosa.

No comprendo del todo bien el mecanismo del GIL (Global Interpreter 
Lock) 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 CPython en 
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