Need for speed: UD engineer Xiaoming Li tackles new hurdles in computer optimization

The University of Delaware’s Xiaoming Li is principal investigator of a three year, $259,000 grant from the National Science Foundation (NSF) to improve optimization techniques that will make computer programs and smart phones - even video games - run faster, using fewer resources

The project is the result of an evolution in the computer world from single-core to many-core processors, which are now considered the main computation engine for both everyday computer applications and high-performance computing.


“The main performance issue in the new many-core era is helping a multitude of threads to optimally share, not compete for, resources,” Li, an assistant professor of computer engineering, said.

“This subtle but fundamental change in the goal of compilation leads to the overhaul of performance modeling, program profiling and the selection of compiler transformations and their parameter values in traditional compilers. That overhaul is the essence of our project.”

Compilers are software tools that translate programs written in high-level programming languages, such as C or Java, into a format that can run directly on computer hardware. The efficiency of the translation determines how fast a program runs.

Traditional compilation technology is largely designed to maximize the single-thread performance found on single-core processors. When applied to programs on the new generation of many-simple-core processors, which routinely run hundreds or even more threads simultaneously, these same strategies fail, slowing down performance.

This is because while many-core processors employ a simple architectural design, they rely heavily on the sheer number of cores to deliver high performance. By contrast, with single-core based computer processors, resource sharing among threads is limited because each thread has its own core and own power resource.

Li’s research will balance the choice of compilation configurations between the performance of a single thread and the overall performance of all threads in the program.

The project’s goals are threefold:

Determine how the new many-core computer processors change the way programs run on computers.
Examine whether traditional compiler optimization techniques are still relevant.
Develop new techniques to accelerate program performance.
Li’s team will systematically study the strategies needed to adapt existing compiler and code optimization techniques to the new many-simple-core processors, and develop new techniques to specifically improve resource allocation on the new architecture.

“The key,” he said, “is maximizing resource utilization, i.e., computation power, without creating a resource bottleneck.”