Spyculative
Spyculative
Disciplines
Computer Sciences (100%)
Keywords
-
Interpreter,
Optimization,
Speculative Execution,
Multicore,
Parallelization,
Caching
Though there has been major progress in virtual machine performance over the last 25years, many advanced techniques are not used in today`s popular interpreters-among them Perl, Python, and Ruby. This causes them to perform considerably below of what is actually possible. Nevertheless, however, exactly those interpreters have been powering the evolution of the internet: from humble beginnings of mostly static content served in the early 90s to the highly dynamic, personalized, and interactive offerings of today`s social web, also known as Web 2.0. Their relevance has also been acknowledged by the European Union, which funded the research on PyPy-a meta- circular Python interpreter with dynamic translation capabilities. Our research aims at increasing the efficiency of those interpreters, which will benefit further developments in future internet trends. We are particularly interested in researching a) interpreter-characteristic preserving optimizations, i.e., techniques which do not invalidate the main characteristics of interpreters, namely ease of implementation and portability; and b) leveraging the additional resources provided by chip multiprocessors, i.e., processors with multiple CPU cores on a die, according to Berkeley researchers the future of desktop computing [ABC + 06].
Modern programming languages offer a wide range of flexible features to programmers, but often at a large price in performance. The Spyculative project investigated the Python programming language to understand the performance of Python programs and discover ways of speeding them up. Python is popular with many people who are not programmers in the traditional sense; for example. it is commonly used by researchers in the natural sciences for data processing and simulation tasks. Making Python programs execute faster can therefore have a large productivity impact across various disciplines.In the Spyculative project we used various techniques to obtain information about the way Python programs are executed. We collected statistics from actual runs of the Python implementation as well as from a novel simulation-based approach which allows data collection at an unprecedented level of detail. The insights gained from this data allowed us to implement and validate some optimizations as well as identify key areas for further research. One of the implemented optimizations speeds up a large class of programs by up to 10%. Our data collection approach yields information can be used to estimate the impact of other optimizations even before implementing them; in certain areas, speedups of over 30% are predicted by our simulator. In particular, we have demonstrated that adding data type annotations to Python programs (a feature to be adopted in future Python versions) can enable such highly beneficial optimizations.
- Technische Universität Wien - 100%
Research Output
- 22 Citations
- 5 Publications
-
2014
Title Python Interpreter Performance Deconstructed DOI 10.1145/2617548.2617552 Type Conference Proceeding Abstract Author Barany G Pages 1-9 -
2014
Title pylibjit: A JIT Compiler Library for Python. Type Conference Proceeding Abstract Author Barany G Conference Gemeinsamer Tagungsband der Workshops der Tagung Software Engineering 2014 -
2011
Title Interpreter Instruction Scheduling DOI 10.1007/978-3-642-19861-8_10 Type Book Chapter Author Brunthaler S Publisher Springer Nature Pages 164-178 Link Publication -
2013
Title Static and Dynamic Method Unboxing for Python. Type Journal Article Author Barany G Journal Software Engineering 2013 Workshopband, lecture notes in informatics -
2013
Title pylibjit: A JIT Compiler Library for Python. Type Conference Proceeding Abstract Author Barany G Conference Tagungsband 17. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'15), Presented at KPS13, Wittenberg, Germany October 2013