A Binghamton University computer scientist with an interest in “green” software development has received the National Science Foundation’s most prestigious award for young researchers.
Yu David Liu received a five-year, $448,641 grant from the NSF’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.
Liu joined Binghamton’s faculty in 2008, after earning master’s and doctoral degrees in computer science from Johns Hopkins University. He also recently received a $50,000 grant from Google for a related research project.
Computers and electronic devices, ranging from smartphones to servers, consume a steadily growing amount of energy. In recent years, computer scientists have developed an interest in paring back this consumption, though generally they’ve approached the challenge through modifying hardware or perhaps operating systems. 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,” said Liu, who plans to build energy-related parameters into a programming language.
A change at that level would permit and encourage programmers to express their energy-saving intentions directly when software is developed. “Saving energy is often a trade-off,” Liu said. “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 said. 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?” and “Do programmers have conflicted views of the energy-consumption patterns of their software?”
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 explained, “an approach that’s platform-independent would be beneficial because it can be applied more broadly.”
None of the mainstream computer languages supports energy-aware programming, he said. However, language designers often create a blueprint that can be extended. Java, for instance, could be extended as EnergyJava and remain 90 percent the same. Such moderate changes would make it possible for programmers to adopt it relatively easily.
There isn’t much history in this area, Liu said, so it’s hard to say how quickly industry will react to the development of an energy-efficient language. However, new language designs have the potential to influence how millions of programmers think.
“I think every researcher wants to make the world better, and we just put it into our own perspective,” he said. “Sometime in the future, every Computer Science 101 class may include a lecture or two on energy-aware programming. As an educator, I’m excited about helping to ensure that next-generation programmers are green-conscious from the beginning of their careers.”
2 Comments
A great idea, maybe one day the task manager or an icon in the system tray will let a user know the energy consumption levels of the software he/she is running on their machine.
You get in your car and drive to the store for a loaf of bread. Do you need to know how the internal couosmtibn engine of your car works? Of course not. It’s the same with programming.You just need to know what action you want to take (drive to the store) and what result you want ( get a loaf of bread). The programmer will understand the internal workings of how to make the program take your action and obtain your result.Explain in detail what you need the software to do. Like, I need to be able to input a date or range of dates. The program should give me all the sales receipts for that date or range of dates. From that list of sales receipts, I’d like to click on a receipt and get the specifics of what items were sold, what salesman sold it, and what customer discount was used for the transaction hope that helps