Research :: ECE :: UD


Computer Systems

Intelligent Profiling and Code Generation Techniques for Multi-core Processors

Xiaoming Li

Compilation is a technique that translates programs written in high-level languages, such as C or Java, into binary code that can be executed directly on CPUs. The quality of the translation decides how fast and how efficiently a program runs. Research on compilation techniques has a long history dating back to the 1950's. Over the decades, significant progresses have been made in developing compilation techniques to increase the performance of compiler generated code. However, existing compilation techniques usually are unable to release full potentials of new computer architectures. For new, and usually more sophisticated, computer architecture features, new compilation techniques are called for to adapt programs to new features, and leverage the addition power provided by those new features. A new major architectural feature in mainstream computer systems is multi-core. Multi-core processors introduce parallel computing from high-end computing environment into everyday life.

However, multi-core processors are inefficiently used. For example, operating systems, like Windows, cannot run parallel on a multi-core processor. Instead, it creates scenarios such that the OS thread, anti-virus software, email checker, and web browser each run on a core. Despite that multi-core processors execute more programs at one moment, each program runs as slow as when it runs on a single processor. Users desire a faster execution of programs when more core/processors are added. In this project, Prof. Li and his group aim to address the two deficiencies in compiler and code generation for multi-core processors.

Recent publications

Eunjung Park, Mihailo Kaplarevic, Yingping Zhang, Xiaoming Li and Guang R. Gao, "Dynamic Optimization Option Search in GCC" GCC Developers' Summit, July, 2007

Bookmark and Share