The last decades have seen an enormous growth in the performance capabilities of computing platforms. One important driver in the computing revolution was productivity enabled by higher-level languages and software engineering methods that allow building and maintaining complex software systems. However, unable to fully utilize modern computer systems, software built that way can under-perform by several orders of magnitude on top-end workstations. With CPU frequency scaling coming to a halt and the switch to multicores, high-end systems become increasingly energy-constrained. In addition, as more computing is becoming mobile, inefficiency directly translates into wasted energy and shorter battery life, and ultimately, less usefulness.
Today, high efficiency is mostly achieved through heroic human programming by a small number of experts. This research studies how to go beyond this unsustainable situation and how to make a high level of efficiency accessible to average programmers across a wide range of platforms and algorithms. The Hot Bench system developed in his research provides interactive optimization capabilities for the generation of highly efficient programs, for both average and expert users. It includes a comprehensive library of optimization strategies for targeting various kinds of algorithms, data structures, and target platforms. Expert users can add optimization strategies, target new instruction sets, or add new output languages. Less experienced programmers can learn how optimization works and how complicated architectures are programmed. The system is designed to be extensible to virtually any program type and target hardware, and to be able to encode all the necessary optimization methods and tricks. Hot Bench is in spirit similar to computer algebra/mathematics systems like Matlab, Maple, or Mathematical, and interactive theorem proves, applying their concept to hotspot tuning.