Kavon Farvardin: Automatic compiler tuning during program runtime

Monday, February 3


JCL 390

Automatic compiler tuning during program runtime

Did you know “Student Seminar” is an anagram of “USS Determinant”?

The Student Seminar this week will feature Kavon Farvardin (@kavon), who will be giving a demo and discussion of some of the cool stuff he’s been working on.

Automatic compiler tuning during program runtime

Low-level languages like C, C++, and Rust are the language-of-choice for
performance-sensitive applications and have major implementations that are based
on the LLVM compiler framework. The heuristics and trade-off decisions used to
guide the static optimization of such programs during compilation can be
automatically tuned during execution (online) in response to their actual
execution environment. The main objective of the Halo project is to explore what is
possible in the space of online adaptive optimization for LLVM-based language

This project differs from the usual application of runtime systems employing JIT
compilation in that we are trying to optimize programs even if they already have
very little interpretive overhead, e.g., few dynamic types. Thus, our focus is on
trying to profitably tune the compiler optimizations applied to C/C++ code while
the program is running. This is in contrast to traditional offline tuning where
a sample workload and hours of time are required to perform the tuning prior to
the deployment of the software, and afterwards the tuning remains fixed.
In this informal talk, I’ll provide an overview and status report of the project, along
with a live demo of some of its current capabilities. The project is available on
GitHub here: https://github.com/halo-project/halo