University of Cambridge > Talks.cam > Computer Laboratory Computer Architecture Group Meeting > Making Python Fast: Using Hardware-Software Co-design to Address Inefficiencies in Dynamic Language Runtimes

Making Python Fast: Using Hardware-Software Co-design to Address Inefficiencies in Dynamic Language Runtimes

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Prof Simon Moore.

Note unusual time and venue

Dynamic programming languages such as Python and JavaScript are becoming increasingly popular, and this motivates the need for just-in-time (JIT) compilation to close the productivity/performance gap. Unfortunately, developing custom JIT -optimizing virtual machines (VMs) requires significant effort. Recent work has shown the promise of meta-JIT frameworks, which abstract the language definition from the VM internals. PyPy, a JIT -optimizing VM for the Python language, and its meta-tracing JIT compiler is a good example for this. Meta-JITs can enable automatic generation of high-performance JIT -optimizing VMs from high-level language specifications.

While meta-JIT approaches can narrow the performance gap between dynamic and static languages, dynamic language performance is still typically an order of magnitude slower. In this talk, I will be giving an introduction to PyPy and the meta-tracing JIT technique, and discuss sources of inefficiencies in PyPy’s execution. I will also present some of our ongoing work on using specialized hardware to discover data patterns in PyPy’s JIT -compiled code, produce more speculative JIT -compiled code using these patterns, and offload some of the run-time checks (guards) to hardware.

Bio: Berkin Ilbeyi is a final-year PhD student at Cornell University. He is advised by Christopher Batten at the Computer Systems Laboratory, part of the Electrical and Computer Engineering Department. His research interests lie in the intersection of computer architecture and just-in-time-compiling virtual machines for dynamic languages.

This talk is part of the Computer Laboratory Computer Architecture Group Meeting series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2018 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity