|Keynote DSD 1:|
Prof. Alex Nicolau, Computer Science Dept., University of California, Irvine, USA
TransMutations: Towards a Human-quality Optimizing Compiler
|Prof. Alex Nicolau received his Ph.D. in Computer Science from Yale University in 1984, and then served on the
faculty of the computer science department at Cornell University as an assistant professor until 1988. That year he
joined the University of California, Irvine as an associate professor, and he continues to happily serve on their
faculty as a full professor since 1992.|
Alex is one of the founding members of the ELI/Bulldog project at Yale. He worked with Josh Fisher and provided the earliest documented evidence that instruction level parallelism was not only available in large amounts in ordinary programs, but was also practically exploitable. He then developed a set of flexible and general instruction-level parallelizing transformations, that could better deal with unpredictable control flow in programs and could produce provably superior parallel code (Percolation Scheduling). With Alex Aiken, he developed Perfect Pipelining, a software pipelining technique built on top of percolation scheduling, which is the first (and only) pipelining technique to combine fully general handling on control-flow with provably optimal results. These techniques have been adapted for use at numerous centers around the world, notably at IBM (Watson), Siemens (Munich) and Fujitsu Labs (Japan), and in GCC. Jointly with L. Hendren and Joe Hummel developed pointer analysis techniques for static analysis of complex data-structures.
In the last few years extended the instruction level parallelism technology to the area of High-Level Synthesis, and to improving performance on ASIP/Embedded processors. And also developed new hybrid algorithms for very fast Matrix Multiplication, new light-weight synchronization and scheduling/load-balancing techniques for use on small and large scale high performance parallel machines.
The author of over 250 conference and journal articles, Alex is this year's general chair of the ACM International Supercomputing Conference (ICS) and serves as editor in chief of the International Journal of Parallel Programming, the oldest journal in that field.
|Abstract||Applications for different embedded domains have very different characteristics in terms of computation requirements, available parallelism, memory bandwidth requirements, etc. Consequently, many different embedded processor styles exist to serve these needs. Effective use of these processors requires an efficient software toolchain that allows ease of application development. Retargetable compilers, which can produce code for many different processors, are an essential component of the toolkit. However, retargetable compilers suffer from the problem of poor output code quality as compared to target specific compilers, and even more so when compared with expert human hand-coding. We present TransMutations, a framework for customizing the retargetable compiler based on the input application, target processor and optimization goals. TransMutations integrates many compiler transformations (including code selection, register allocation, and other optimizations) into the scheduler and performs dynamic, context-sensitive ordering of the transformation phases to achieve better output quality as compared to a static, predetermined order.|