SHF: Small: Closing the Productivity/Performance Gap with Just-in-Time Configuration of Meta-Trace Accelerators
Cornell University, Ithaca NY
Investigators
Abstract
Title: SHF: Small: Closing the Productivity/Performance Gap with Just-in-Time Configuration of Meta-Trace Accelerators Dynamic programming languages are growing in popularity across the computing spectrum from smartphones, to servers, to supercomputers. Dynamic programming languages such as Python, JavaScript, and MATLAB are all now among the top-ten most popular programming languages. These "productivity-level" languages make it easy to quickly develop, verify, and maintain applications, but unfortunately, the performance of such applications is usually quite low. This project is exploring a new hardware/software co-design approach for closing this productivity-performance gap. The intellectual merits of this project are the potential for fundamental advances in new hardware accelerators specifically designed for dynamic programming languages, and new software techniques to let applications take advantage of these accelerators. The project's broader significance and importance are rooted in the popularity of dynamic programming languages, and the potential to significantly improve the performance of these highly productive languages. There has been great interest in software and hardware techniques to close the "productivity-performance gap". On the software side, high-performance interpreters are increasingly leveraging just-in-time (JIT) method- or trace-based compilation techniques. On the hardware-side, there is a long history of directly supporting high-level languages in hardware. Unfortunately, direct execution of high-level languages precludes the kinds of aggressive optimizations possible with JIT compilation and can prevent efficient execution of alternative high-level languages. A key insight is that future hardware acceleration for dynamic programming languages should not replace JIT compilation, but should instead elegantly complement JIT compilation for a variety of different dynamic programming languages. This project is investigating a new approach using just-in-time configuration of meta-trace accelerators. The project is using a vertically integrated research methodology to explore the following four research thrusts: (1) developing and optimizing a new Scheme interpreter (called RLisPy) to create a state-of-the-art software baseline; (2) exploring various novel hardware meta-trace accelerators for RLisPy; (3) exploring JIT configuration to accelerate RLisPy using these meta-trace accelerators; and (4) applying these techniques to the more popular Python dynamic programming language.
View original record on NSF Award Search →