Was ist LLVM und wie ersetzt Python VM mit LLVM erhöht Geschwindigkeiten 5x?
Google sponsert Open-Source-Projekt zur Erhöhung der Geschwindigkeit von Python von 5x.
Unbeladenen Schwalbe scheint ein guter Projektplan
Warum ist Parallelität ein so schweres problem?
Ist LLVM lösen, die concurrency-problem?
Gibt es andere Lösungen als Multi-core-Hardware Aufstieg?
Kommentar zu dem Problem
Das ist nicht eine Frage. Ich sehe mindestens drei, möglicherweise vier.
Würden Sie mir bitte alle getrennte Fragen? Sie sind alle verwandt, in einer Weise. Sind Sie das nicht? 🙂
"Py3k scheint behoben zu haben, dass der Speicherbedarf problem (durch Rücksendung Iteratoren als Listen); Nun, wenn LLVM löst speed-Problem?", was ist die Frage? Es ist eine Art stillschweigender Frage... aber es ist nicht klar, was es ist. Und ja, es gibt zu viele Fragen hier!
@TofuBeer: Bearbeitet den letzten Teil, und es entfernt, Es ist in der Tat vielleicht geeignet, für eine andere Frage
InformationsquelleAutor der Frage Lakshman Prasad | 2009-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
LLVM ist, mehrere Dinge, die zusammen eine Art virtuellen Maschine/compiler-Optimierung, kombiniert mit verschiedenen frontends, die die Eingabe in einer bestimmten Sprache und die Ausgabe in eine intermediate-Sprache. Diese intermediate output ausgeführt werden können mit der virtuellen Maschine, oder kann verwendet werden, um erzeugen eine eigenständige ausführbare Datei.
Das problem mit der Parallelität ist die, dass, obwohl es war für eine lange Zeit verwendet im wissenschaftlichen rechnen, es hat gerade in letzter Zeit hat sich eingebürgert, in der consumer-apps. So, während es ist allgemein bekannt, wie eine wissenschaftliche Berechnung-Programm zur Erreichung tolle Leistung, ist es ganz anders zur Sache schreiben Sie eine E-mail-Benutzer-agent/Textverarbeitungsprogramm, das kann gut sein, Parallelität. Auch die meisten aktuellen Betriebssysteme wurden entworfen, mit einem einzigen Prozessor im Kopf, und sind Sie möglicherweise nicht voll und ganz bereit für multicore-Prozessoren.
Gunsten von LLVM mit Bezug auf die Parallelität ist, dass Sie ein mittleres Ausgang, und wenn in der Zukunft gibt es Fortschritte in der Gleichzeitigkeit, dann aktualisieren Sie Ihre Dolmetscher, die Sie sofort gewinnen Sie diese Vorteile in allen LLVM-kompilierte Programme. Das ist nicht so einfach, wenn Sie sich erarbeitet hatten, um eine eigenständige ausführbare Datei. Also LLVM nicht lösen das concurrency-problem per se, aber es lässt eine Tür offen für künftige Erweiterungen.
Sicher, es gibt mehr mögliche Fortschritte für die hardware wie von Quanten-Computern, genetics Computer, etc.. Aber wir müssen warten, bis Sie zu Realität werden.
InformationsquelleAutor der Antwort
Den Schalter auf LLVM selbst ist nicht die Lösung der concurrency-problem. Das ist, gelöst wird separat, von getting rid of die Global Interpreter Lock.
Ich bin mir nicht sicher, wie ich darüber denke; ich verwende threads, vor allem zum Umgang mit blocking I/O, nicht um die Vorteile von multicore-Prozessoren (für die, würde ich die
multiprocessing
Modul, um zu laichen separate Prozesse).Also irgendwie mag ich die GIL; es macht mein Leben viel einfacher, nicht zu denken, über knifflige Probleme bei der Synchronisierung.
InformationsquelleAutor der Antwort DNS
LLVM kümmert sich um die nitty-gritty der code-Generierung, so dass es lässt Sie umschreiben Psyco in einer Weise, die mehr Allgemeine, portabel, wartbar. Das wiederum ermöglicht es Ihnen, zu schreiben, die CPython-core, die können Sie Experimentieren mit alternativen GCs und andere Dinge, die benötigt werden, um zu verbessern, die python-Unterstützung für Parallelität.
In anderen Worten, LLVM nicht lösen das concurrency-problem, es ist nur befreit Ihre Hände, so können SIE es lösen.
InformationsquelleAutor der Antwort Rhamphoryncus