SHF: Small: Predictable Performance for Just-in-Time Compilation
Northeastern University, Boston MA
Investigators
Abstract
Performance is serious business for a scientific programming language. Success in that niche hinges on fostering a rich ecosystem of highly-optimized mathematical libraries. The Julia language is predicated on the bet that its users can write efficient numerical code without having to resort to C or Fortran. Julia programmers strive to write code that will be compiled with predictable performance. In particular, they believe that, for performance-critical sections, the high-level abstractions provided by the language will melt into code equivalent (or close enough) to what one would have written in a performance language like C. There is an inherent tension between the need for predictable speed and the desire of developers to write generic and reusable high-level code. High-level code uses abstractions such as dynamic binding, generic types, and automatic memory management. Equipped with sufficient information about the expected behavior of a particular program, a compiler can indeed compile these abstractions down to efficient code. Unfortunately, the kind of information needed for this is non-local, and it can be accrued either by whole-program static analysis or by feedback-directed speculative compilation. Either one is sensitive to small changes in the program. Programmers may thus not be able to predict how efficient their code will be without testing it extensively after each code change. To avoid this, the designers of Julia have included two novel features in their language design: world age and type stability. These features allow programmers to have greater confidence in their code, and are part of a dialogue between the compiler and programmers. This project's novelties are to formalize existing concepts in Julia for predictable performance and to argue about their correctness. The project’s impacts are a better understanding of the language that can be leveraged by programmers and tool-builders. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
View original record on NSF Award Search →