Improving developer productivity by demystifying the compiler black box
Compilers are an integral component in software development that ensure our software performs on modern systems. However, compilers may sometimes be seen as complex, black-box interpreters in the build system that fail to understand the programmer’s intent. Through a series of short videos, BSSw Fellow Johannes Doerfert will explain the compiler, its inner workings, and best practices to work with it. The goal is to open the compiler black-box to foster an interactive development experience that will reduce programmer effort and increase performance and software quality. Videos will provide an introduction to basic compiler-based tools and functionality---information that should be understood by all (scientific) programmers. Videos also will expose how to actively work on a large production application, and how working with the compiler, as opposed to against it, will result in time savings and better code/performance.
Johannes Doerfert is a computer scientist in the Center for Applied Scientific Computing at Lawrence Livermore National Laboratory. He is interested in new and exciting uses for compiler technologies. His research goal is to help people exploit hardware to the fullest without requiring them to become experts in the hardware or the software stack, including programming languages. Code is a means, not the final goal. As such, Johannes believes that manual efforts to rewrite, tune, or adapt code are often signs for missing tools, compiler shortcomings, misinformation, or a combination thereof. Johannes has been involved in the LLVM compiler framework since 2014 and the OpenMP language standard since 2018. He received his Ph.D. in Computer Science from Saarland University in Germany in 2018.
Selected Resources
Video - Looking at Compilers: Optimization levels Video - Looking at Compilers: Specifying your processor