Spyculative
Spyculative
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Interpreter,
Optimization,
Speculative Execution,
Multicore,
Parallelization,
Caching
Obwohl es in den letzten 25 Jahren auf dem Gebiet der Beschleunigung von virtuellen Maschinen viel Fortschritt gab, so gibt es heutzutage doch einige populaere Interpreter (z.B. fuer Perl, Python und Ruby), deren Implementierungen vor allem fortgeschrittene Techniken nicht verwenden. Deshalb liegt bei diesen Interpretern die Ausfuehrungsgeschwindigkeit weit unter dem was moeglich ist. Unabhaengig davon, scheinen gerade diese Programmiersprachen - und damit auch deren Interpreter - Motoren des Fortschritts des Internets zu sein. Von den bescheidenen Anfaengen in den fruehen 90er Jahren bis zu den hoch-dynamischen und personalisierbaren Inhalten des "Web 2.0". Die Relevanz dieser Interpreter wurde letztens auch von der Europaeischen Union durch die Foerderung des "PyPy"-Projekts anerkannt. Dabei handelt es sich um einen weitgehend selbst-referentielles Python Interpreter System mit Unterstuetzung fuer dynamische Uebersetzung. Das Ziel des Spyculative Projekts ist es, die Effizienz dieser Klasse von Interpretern zu verbessern und damit einhergehend zukuenftige Entwicklungen von Internet-Trends nachhaltig positiv zu beeinflussen. Im Detail sind wir an der Erforschung folgender Schwerpunkte interessiert: a) Die Entwicklung von Optimierungen welche die charakteristischen Eigenschaften von Interpretern (Einfache Implementierung und Portierbarkeit) erhalten. b) Das effiziente Ausnutzen von zusaetzlich bereitgestellten Rechenressourcen von sog. Chip-Multiprozessoren. Dabei handelt es sich um eine relativ junge Entwicklung von Prozessoren, die mehrere unabhaengige Rechenkerne auf einem physischen Prozessor vereinen. Mehreren Quellen zufolge gehoert diesem Trend die Zukunft der Rechner Architektur. Bereits 2006 wurde dies von mehreren Forschern von der Universitaet in Berkeley behauptet [ABC + 06] - was sich bisher in der Entwicklung der letzten 3 Jahre bestaetigen laesst.
Moderne Programmiersprachen bieten Programmiererinnen und Programmieren eine breite Palette an Möglichkeiten, die die Programmierung flexibel erleichtern, sich jedoch oft nachteilig auf die Laufzeit auswirken. Im Projekt Spyculative wurde die weitverbreitete Programmiersprache Python untersucht, uni die Ausführungseigenschaften und mögliche Optimierungen von Python-Programmen zu verstehen und zu verbessern.Python ist eine beliebte Programmiersprache vor allem auch für AnwenderInnen, die sich nicht als Programmiererlnnen im traditionellen Sinn verstehen: sie wird zum Beispiel oft von Forscherinnen in den Naturwissenschaften für Datenverarbeitungs- und Simulationsaufgaben verwendet. Eine schnellere Ausführung von Python-Programmen kann daher die Produktivität in vielen Wissenschaftsdisziplinen positiv beeinflussen.Im Spyculative-Projekt haben wir mit unterschiedlichen Techniken Informationen über die Ausführung von Python-Programmen ermittelt. Wir haben die Statistiken einerseits von tatsächlichen Ausführungen der Python-lmplementierung und andererseits mittels einer neu entwickelten simulationsbasierten Methode gesammelt. Letztere ermöglicht die Sammlung von Daten mit einem bisher nicht dagewesenen Detailreichtum. Die Einsichten aus der Analyse der Daten haben uns erlaubt, einige Optimierungen zu implementieren und zu validieren sowie wichtige zukünftige Forschungsfelder zu identifizieren. Eine der von uns implementierten Optimierungen verbessert die Ausführungszeit einer großen Klasse von Programmierungen bis zu 10%.Unsere simulationsbasierte Sammlung von Daten liefert Informationen, mit deren Hilfe die Auswirkungen von Optimierungen schon vor deren Implementierung abgeschätzt werden können: für bestimmte Anwendungsfälle sagt der Simulator Verbesserungen von über 30% voraus, Insbesondere haben unsere Untersuchungen gezeigt, dass die Annotierung von Python-Programmen mit Informationen über Datentypen (ein Merkmal, das für zukünftige Python-Versionen vorgesehen ist) solche sehr nützlichen Optimierungen ermöglicht.
- Technische Universität Wien - 100%
Research Output
- 22 Zitationen
- 5 Publikationen
-
2011
Titel Interpreter Instruction Scheduling DOI 10.1007/978-3-642-19861-8_10 Typ Book Chapter Autor Brunthaler S Verlag Springer Nature Seiten 164-178 Link Publikation -
2013
Titel Static and Dynamic Method Unboxing for Python. Typ Journal Article Autor Barany G Journal Software Engineering 2013 Workshopband, lecture notes in informatics -
2013
Titel pylibjit: A JIT Compiler Library for Python. Typ Conference Proceeding Abstract Autor Barany G Konferenz Tagungsband 17. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'15), Presented at KPS13, Wittenberg, Germany October 2013 -
2014
Titel pylibjit: A JIT Compiler Library for Python. Typ Conference Proceeding Abstract Autor Barany G Konferenz Gemeinsamer Tagungsband der Workshops der Tagung Software Engineering 2014 -
2014
Titel Python Interpreter Performance Deconstructed DOI 10.1145/2617548.2617552 Typ Conference Proceeding Abstract Autor Barany G Seiten 1-9