Showing posts with label computing. Show all posts
Showing posts with label computing. Show all posts

Tuesday, October 20, 2015

Software Is Tangible


Many people seem to think that software is non-physical---that unlike the computer keyboard and screen they can touch and feel, the software that makes their computer do useful work has no physical existence.  This ghost-in-the-machine view of software doesn’t square up with reality. Computing is a physical act and software is the physical object that drives computers.
Software is stored in the memory of a computer as collections of electrons: a certain number of electrons stored at a location represents a 1 bit while a small number (or no) electrons represents a 0 bit. (Other storage media represent bits in other ways---magnetic domains, pits in DVDs, etc.---but the principle remains the same.) In a modern memory, only a few hundred of these little tiny electrons are enough to store a 1 bit. 
But tiny is not the same as non-existent.  A little high school physics tells us that, in fact, electrons do exist in the physical world. Wikipedia gives the mass of an electron as 9.1 X 10^-39 kg.  That’s pretty darn small. But they do really exist. And we can sense the behavior of electrons in many ways.  For example, we can steal cryptographic keys from smart cards and computers watching the flow of electrical energy into the machine.  This technique, known as a power attack, figures out the 1s and 0s of your security key simply by watching how much power the computer consumes at different steps of the security process.  The physical nature of those little tiny bits has real and important implications.
And some of the effects of the physical nature of software are accessible by a simple touch. Running software consumes electric power that is transformed into heat by the computer, much as our bodies heat up as we exercise. When your feel your laptop grow hot as you watch a movie, you feel the physical effects of software. Can a ghost in the machine do that?

Wednesday, September 2, 2015

Article on Embedded Multi-Core Performance/Power

Here is a great article from Anandtech with some experimental results on cell phone multicore architectures.  Their experiments show how many threads are at work in some typical cell phone scenarios and provide utilization and power results.

Monday, December 16, 2013

Big Signals

Big Data is a popular buzzword in computer science and with good reason.  The analysis of large data sets is both a difficult problem and one with a wide range of applications; the selection of ads for blogs based on their content and the user's activity is just one example.

But traditional Big Data systems, like Google Cloud, are designed for more traditional database applications.  They aren't built to handle time-oriented data.  Cyber-physical systems use time as a fundamental concept.  Time-series data and signals are two terms for this concept.

Of course, entire fields (e.g., signal processing) have sprung up to develop the mathematics of signal processing.  But the design of large computing systems that can efficiently handle time-series data has lagged behind.

That's where Big Signals comes in.  We need cloud computing systems that are designed to manage signals and time-series data.  We process signals in a different way than we do, for example, sales transactions. Cloud systems that operate on signal-oriented data will want to process small windows of signals in real time to identify important events; they will also want to analyze historical data at multiple time scales in order to identify larger trends. 

Here are a few examples of how to use Big Signals in the cloud.  Farmers may use historical weather data to figure out how to plant, water, and feed their crops.  Medical teams may use cloud-based systems both to monitor a patient's current state as well as to run longer-term analyses for diagnosis. Energy systems may use historical load data to manage energy generation; it can also use historical weather data to predict the generation capacity available from wind and solar.

The existing cloud computing systems are a good start, but we need to understand how data schema, access scheduling, and other problems to handle the challenges of Big Signals.