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