Monday, June 10, 2013

Let's teach battery perservation in Computer Science

In a society that is increasingly moving towards always-on mobile ubiquity, graduates of computer science degrees can be trained to write code that dramatically saves battery life. Mobile technology is affordable, and it is easy to teach about battery consumption when learning to code.

Apple's OSX Maverick unveiled at WWDC today unveiled a battery preservation technology that has been available in Windows for about 4 years. Timer Coalescing combines disparate background tasks onto the same clock cycle so that the CPU spends more time idling. As explained from Apple's whitepaper, it synchronizes thread processing to increase CPU idle time.

Before Timer Coalescing

After Timer Coalescing

While energy saving hardware has advanced significantly in recent years, software development techniques remain relatively unchanged. Clay Bershear's post on energy efficient programming talks about how programmers can save power with vector operations, limiting loop increment complexity, and simpler code. Power consumption simulators such as ENERJ will allow developers to understand how much power their software consumes during development. Companies are also documenting exactly how much power each operation consumes.
I was once told that a prominent GPU producer had measured the amount of energy that every operation (computation, access to memory, moving data in from off-card, etc.) took on its products.
I could see programming assignments for creating an algorithm that sorts 10K random items with less than 0.1W of power. Or an JPEG compressor that uses less than 0.5W per 15 megapixel bitmap.

I'd love to hear what ideas can you think of.

Thursday, June 06, 2013

Have we killed Fundamental Science?

In Canada recent changes to government funding programs has resulted in protests proclaiming the "Death of Scientific Evidence". Adorned with signs, coffins, and white lab coats, many Canadian researchers were protesting against censorship of environmental research results (which I also oppose). However, many academics associate with these sentiments because federal funding programs have placed much more emphasis on academics working with industry in recent years (which I also support). Curiosity driven research funding is much harder to obtain than industry supported research. For example, Industry backed NSERC Engage grants can be submitted any time with over 90% acceptance. This is not only happening in Canada but in other parts of the world as well (e.g. the CDT in UK). So this begs the question:
Are academics are at the mercy of corporations, and no longer able do fundamental science? 
Many academics are surprised when they hear that industry is simultaneously being held to academic standards. Scientific Research and Experimental Development (SR&ED) tax incentives requires corporations to resolve scientific or technological uncertainty, adopt hypothesis testing/scientific method, and demonstrate advancement in science and technology. 
It seems as though corporations are being told to be more like academics.
We need academics to lead in fundamental research and industry to lead in delivering customer value. While the novelty focused review process pushes academics towards niche areas of low societal impact, dwindling stock prices drive industry leaders to focus on short term results rather than long term profitability. 

It is simply not true that government and industry direction hinders fundamental research. Consider government directed projects in cyptography and the radar during WWII. The Google Voice and Siri interfaces we use today would not have been possible without directed fundamental research in Artificial Intelligence and Natural Language Processing from ARPA from 1956-1974. 

We hope that in the future the success of a professor will not only be measured by the length of their publication list, or the number of graduate students, but on their ability to listen to the needs of their stakeholders: the taxpayers.