The problem: Computers and electronic devices, ranging from smartphones to servers, consume a steadily growing amount of energy.
The researcher: Yu David Liu, assistant professor of computer science, received a five-year, $448,641 grant from the National Science Foundation’s Faculty Early Career Development (CAREER) Program. The highly competitive grants support junior faculty who exemplify the role of teacher-scholars through outstanding research, excellent education and the integration of education and research.
The research: Computer scientists have developed an interest in paring back this energy consumption, though generally they’ve approached the challenge through modifying hardware or operating systems.
The strategy: Liu plans to tackle the problem by considering how programmers can create more energy-efficient software. “Saving energy is an activity that should come from many layers,” says Liu, who plans to build energy-related parameters into a programming language.
A change at that level would enable and encourage programmers to express their energy-saving intentions directly when software is developed. “Saving energy is often a trade-off,” Liu says. “Sometimes you’re willing to run your program slower so your cell phone battery can last longer.” For such settings — often specific to the nature of the applications — no automated algorithms know as much as programmers.
“Programs today are not just 50 lines of code,” Liu says. They have often grown to be thousands or even millions of lines long. He hopes to employ advanced programming language technologies known as “type systems” to answer questions such as “What is the energy-consumption pattern of a large program, given the consumption patterns of its fragments?”
Energy-efficient solutions at the level of programming languages also enjoy a high degree of platform independence, meaning they can have an impact all along the spectrum from phones to servers. “In an era when new platforms are introduced every year,” Liu explains, “an approach that’s platform-independent would be beneficial because it can be applied more broadly.”
“Sometime in the future, every computer science 101 class may include a lecture or two on energy-aware programming,” he says. “As an educator, I’m excited about helping to ensure that next-generation programmers are green-conscious from the beginning of their careers.”