[Python-de] Mandelbrot mit Threads: Keine CPU-Vollauslastung
Andreas Meile
usenet at andreas-meile.ch
Mo Mai 4 13:56:22 CEST 2015
Hallo Diez
"Diez B. Roggisch" <deets at web.de> schrieb im Newsbeitrag
news:mailman.79.1430731120.12865.python-de at python.org...
> Und diese Einschränkung (das sogenannte GIL - Global Interpreter Lock) ist
> so
> fundamental relevant dafür wie Python funktioniert, dass man das nicht
> “mal eben”
> ändern kann.
Danke für diesen wirklich wichtigen Hinweis. Per Google gefunden:
https://wiki.python.org/moin/GlobalInterpreterLock
Und speziell noch lesenswert daraus:
http://www.dabeaz.com/python/GIL.pdf
> Darum gibt es seit inzwischen geraumer Zeit das Modul “multiprocessing”.
> Das ist in vielen Fällen (und Apfelmännchen gehört IMHO dazu, da alle
> Teilaufgaben unabhaenging von den anderen berechnet werden können) fast
> ein drop-in-replacement fuer das threading Modul.
Werde ich bei Gelegenheit einmal anschauen, danke für diesen Hinweis. Sonst
bin ich mit
https://docs.python.org/3/library/multiprocessing.html
an richtigen Ort für Details dazu?
> Allerdings nicht fuer dich, denn dein Code ist ziemlich problematisch -
> aufgrund der Verwendung von jeder Menge globalem Zustand. Das würde man
> auch mit threading so nicht machen, sondern zB Arbeitsaufgaben mittels
> Queue.Queue verteilen. Und so arbeitet auch multiprocessing, denn
> geteilten,
> globalen Zustand gibt es dort per definition nicht.
Ich weiss, dass die aktuelle Version von der Softwaredesign-Perspektive noch
nicht das Gelbe vom Ei ist. Werde aber gerne mit der Zeit in Form eines
Refactorings versuchen, "global" ähnlich wie früher das "goto" auszurotten
und mir eine passendes Software-Design mit Klassen und besserer
Datenkapselung einfallen lassen.
Nebenbei: Aktuell arbeite ich mit der Idle-Entwicklungsumgebung. Frage: Gibt
es auch Alternativen, die bezüglich Code Completion und Code-Navigation
ähnlich nahe einem Eclipse mit Java kommen? Oder gar ein Python-Plugin für
Eclipse selber?
> Eine Alternative könnte fuer dein spezielles Problem (da
> arithmetik-lastik) auch
> noch PyPy sein.
Muss ich mir dann auch einmal noch anschauen.
Andreas
--
"127.0.0.1 was ist das? Ich kenne nur ::1!" - www.swissipv6council.ch
Mehr Informationen über die Mailingliste python-de