An Agile Architecture

Growing up in Korea, Hyesoon Kim wanted to know how things worked.

"How does a valve work? How does a gear work?" she remembers asking herself. "I liked those questions a lot."

Kim also was interested in math and science. As an undergraduate at Korea Advanced Institute of Science and Technology, she says she faced a “tough choice” between computer engineering and mechanical engineering, but ended up choosing the latter because she thought it offered the opportunity to be flexible. Down the road, that choice would pay off when Kim became … a computer scientist.

“In mechanical engineering, you can do a lot of programming—you can use computers,” says Kim, now an assistant professor in the School of Computer Science.


Hyesoon Kim 

As a member of her school’s computer architecture team, Kim finds plenty of opportunities to put her engineering acumen to work. In fact, her research concentrates on an engineering challenge within computer science: designing a machine that marries a traditional central processing unit (CPU) with a graphics processing unit (GPU). Currently a debate burns within computer science about which processing unit ultimately offers the promise of best performance, and a heterogeneous architecture that combines them could perform the fastest of all.

“We haven’t built a heterogeneous architecture combining CPUs and GPUs—yet,” Kim says. “Right now they’re different units. But in the future—and not too far away, actually this spring—they will be in the same system, on the same motherboard.”

The problem, Kim explains, is allocating the work assigned to each processor. CPUs and GPUs handle their workloads very differently, and “fairness”—finding the right resource balance of power efficiency and improved performance—is key. Thanks to a coveted NSF CAREER Award she received in the final days of 2010, Kim will have the resources herself to work on that very problem.

“We want to use CPUs for more general-purpose applications, so we need to handle the hardware issues,” she says. “Resource balance is the most difficult issue; both the processors want to use all the resources, and they have very different characteristics.”

Alongside that project are others designed to capitalize on a heterogeneous architecture and help others do the same. For example, Kim is developing the first simulator of heterogeneous architectures, called “MacSim.” And along with colleague Rich Vuduc, assistant professor in the School of Computational Science & Engineering, she is working on a tool to help programmers using heterogeneous machines. Called the CUDA performance analyzer (based on the parallel computing architectural framework developed by NVIDIA), the tool would estimate the performance benefit of a heterogeneous architecture and analyze the reasons behind any such benefit.

“A major part of Hyesoon's work today is developing performance tools that will help application programmers better understand how they can make their programs faster,” Vuduc says. “My background is more algorithms-focused, while hers is more architecture- and systems-focused. We believe you need to look at all of these topics simultaneously to make real progress on tools to help simplify the multicore and manycore programming problem.”

Hyesoon Kim

Students in Hyesoon Kim's lab are working to develop a number of tools related to heterogeneous computer architectures, including performance simulators that will help software developers write for such machines.

 

Also in conjunction with Vuduc, Kim is working on a compiler for heterogeneous architectures that would use machine-learning techniques to dynamically distribute work to the CPU and GPU with collaborators at Intel. This project is named “QILIN,” after the mythical East Asian creature that, depending on the culture, can look like a giraffe, deer or dragon, with fishlike scales and the hooves of an ox. The creature’s chimerical properties are a fitting metaphor for a computer architecture that marries together two different types of processing units.

The Qilin could also be an apt symbol for Kim’s still-young career, which has moved from math and computers to mechanical engineering and back to computers. After earning her master’s in mechanical engineering from Seoul National University, she spent nearly two years from 1998 to 2000 working on developing new engine designs for Hyundai.

“I wasn’t really a fan of cars themselves—when I see a cool car design, I think, ‘How do they place the engine to get the car body shaped like that?’” Kim says. “But working at Hyundai did motivate me to learn more about electrical engineering, and that led me more into electrical and computer engineering.”

Three years later Kim had a second master’s degree, this one in ECE from the University of Texas. In August 2007 she completed her Ph.D., having spent four summers interning at Intel, and that fall she arrived at Georgia Tech.

Now, Kim says, she hopes to combine all that experience in her work by efficiently managing resources in heterogeneous architectures for high performance computing applications (such as fluid dynamics in mechanical engineering) or how to schedule threads in heterogeneous architectures to control temperature. She’s even looking forward someday to designing new architectures for future cars.