Intelligent Proﬁling and Code Generation Techniques for Multi-core Processors
- Custom instrumentation and power conversion circuits for extremely efficient solar energy conversion
- Design of 2D Read-out Integrated Circuit for 3-D Laser-radar Imaging Systems
- Driver and receiver circuits for extremely low-power and low electromagnetic interference (EMI) multi-gigabit electrical signaling for small portable and mobile equipment
- Driver and receiver circuits for Optical Fuzing and Scene Generation
- Context-Aware and Context-Adaptive Code Optimization for New General High-performance Computers
- Intelligent Proﬁling and Code Generation Techniques for Multi-core Processors
- Machine Learning Based Library Generation Techniques for Multi-core Processors and GPUs
- Propagation and Mobility Modeling for Urban Mesh Networks
- Modeling and simulation of urban mesh networks
- Mobility management for large-scale urban mesh networks
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.
Eunjung Park, Mihailo Kaplarevic, Yingping Zhang, Xiaoming Li and Guang R. Gao, "Dynamic Optimization Option Search in GCC" GCC Developers' Summit, July, 2007