Randomized algorithms and pseudorandom numbers
STOC '88 Proceedings of the twentieth annual ACM symposium on Theory of computing
Power analysis of embedded software: a first step towards software power minimization
IEEE Transactions on Very Large Scale Integration (VLSI) Systems - Special issue on low-power design
Bus-invert coding for low-power I/O
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Randomized algorithms
Energy-aware adaptation for mobile applications
Proceedings of the seventeenth ACM symposium on Operating systems principles
Design techniques for low-power systems
Journal of Systems Architecture: the EUROMICRO Journal
Towards an energy complexity of computation
Information Processing Letters - Special issue in honor of Edsger W. Dijkstra
Software implementation strategies for power-conscious systems
Mobile Networks and Applications
A Survey of Energy Efficient Network Protocols for Wireless Networks
Wireless Networks
Energy-efficient communication protocols
Proceedings of the 39th annual Design Automation Conference
Input/Output in Parallel and Distributed Computer Systems
Input/Output in Parallel and Distributed Computer Systems
Every joule is precious: the case for revisiting operating system design for energy efficiency
EW 9 Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system
ECOSystem: managing energy as a first class operating system resource
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Adaptive Disk Spin-down Policies for Mobile Computers
MLICS '95 Proceedings of the 2nd Symposium on Mobile and Location-Independent Computing
Reversibility for efficient computing
Reversibility for efficient computing
Primality Testing in Polynomial Time: From Randomized Algorithms to "Primes Is in P"
Primality Testing in Polynomial Time: From Randomized Algorithms to "Primes Is in P"
On using battery state for medium access control in ad hoc wireless networks
Proceedings of the 10th annual international conference on Mobile computing and networking
Energy aware lossless data compression
Proceedings of the 1st international conference on Mobile systems, applications and services
Randomized quicksort and the entropy of the random source
COCOON'05 Proceedings of the 11th annual international conference on Computing and Combinatorics
How to break MD5 and other hash functions
EUROCRYPT'05 Proceedings of the 24th annual international conference on Theory and Applications of Cryptographic Techniques
Fine-grained energy profiling for power-aware application design
ACM SIGMETRICS Performance Evaluation Review
Proceedings of the 2009 Asia and South Pacific Design Automation Conference
Energy aware data management on AVR micro controller based systems
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
Mobile devices consider energy to be a limiting resource. Over the past decade significant research has gone into how one can reduce energy consumption at the hardware level, network protocol level, operating system level, and compiler level. In almost all algorithm analysis, a single resource such as time or communication is often taken as a proxy for energy. We address this problem by defining an algorithmic model for energy, designing algorithm variants that reduce energy cost in this model, and then performing preliminary experiments to test the model.Our starting point is an algorithmic energy model inspired by work from the compilers community [26]. Augmenting and simplifying this model motivates the need to consider an algorithm's "switching" complexity; this measure captures the extent to which one switches between different functional units during execution. We carry out preliminary experiments on the Itsy pocket computer, which contains a StrongARM SA-1100 processor running Linux, to compare "high-switch" versions of bubble sort and other algorithms to optimized "low-switch" versions. Our preliminary results show that switching does not appear to affect energy consumption at the algorithmic level.We then look at a factor that does not appear to have been studied, namely the cost of generating (pseudo)random bits. Derandomization is a goal in cryptography and complexity theory. To our knowledge the energy cost of randomness itself has not been studied. Nonetheless, many mobile protocols and algorithms might utilize randomness, for example to handle contention resolution, generate cryptographic keys, or to accomplish efficient sorting. We consider three common mechanisms for generating randomness: the standard C library random number generator, and the Linux /dev/random, and /dev/urandom generators. We perform tests that compare the energy consumed by these generators compared to thecost of performing basic arithmetic instructions. We use Quicksort as an example of a classic basic application-level algorithm to understand the energy cost of randomness, and compare the energy consumed by randomized Quicksort to standard Quicksort. Our preliminary results show that generating randomness does in fact incur a significant energy cost, and /dev/random is the most expensive of the three mechanisms.We conclude that understanding energy consumption at the algorithmic level is an important but overlooked area of investigation, and discuss the implications of our results. We end with directions for for further work.