Languages, Compilers, & Runtime Systems
Static and run-time compiler systems are used to get more performance, robustness, and energy efficiency through intelligent program analysis, transformation, and adaptation. Deep analysis of application behavior identifies opportunities to customize the software to the underlying hardware as well as providing an automatic approach to customize hardware functionality to a set of applications. Dynamic profile or run-time data expose opportunities to optimize the common case or even input-specific optimizations. CSE faculty are developing new compiler methods to optimize applications from mobile to cloud server. Techniques such as software approximate computing unlock performance in applications where 100% output accuracy is neither necessary or even possible. Lightweight dynamic compilation allows an application to be optimized while it is running without disruptions. Other projects explore problems at the interface of architecture, operating systems and program analysis, to help programmers write and maintain reliable parallel software, including support for tolerating concurrency bugs, memory consistency models and deterministic replay. Moreover, faculty within this area explore specialized solutions to greatly boost the performance of specific algorithms or computing frameworks, for instance frameworks that are widely applied in the context of large data applications, such as MapReduce.
Compilers are also key in identifying new opportunities to make use of specialized accelerators. GPUs, FPGAs, and other accelerators provide great opportunities to offload work from traditional processors. Key challenges being investigated are how to find this work, how to match it to the accelerator, and how to do both of these without having the programmer rewrite or restructure applications. Compilers are also used to design customized processor and accelerator architectures. Customized processors bring previously unattainable performance to edge devices (sensors, phones) in important domains such as deep learning, computer vision, and medical imaging.