Slashdot Log In
Measuring the User For CPU Frequency Scaling
Posted by
timothy
on Wed May 13, 2009 04:50 PM
from the no-this-one-goes-in-your-mouth dept.
from the no-this-one-goes-in-your-mouth dept.
An anonymous reader writes "The Empathic Systems Project a Northwestern University demonstrate up to 50% power savings by controlling CPU frequency scaling based upon the end user. They measure the user with eye trackers, galvanic skin response, and force sensors to find a CPU frequency that the user is satisfied with.
They are currently studying user activity and system performance on mobile architectures, specifically the Android G1 phone."
Related Stories
Submission: Measuring the User for CPU Frequency Scaling by Anonymous Coward
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
So does this mean (Score:5, Funny)
Re:So does this mean (Score:5, Funny)
Parent
Re:So does this mean (Score:5, Funny)
Parent
Re:So does this mean (Score:4, Insightful)
No, it just means that not clicking a button multiple times and yelling will make it go slower.
Parent
Way I read it (Score:5, Insightful)
Way I read it, it'll just make sure it goes just fast enough to want to make you scream for real anyway. I doubt that faking screaming alone will take care of the other variables they mention. But being genuinely stressed, probably will. And they'll underclock the computer until they start seeing what they consider an acceptable level of stress, regardless of whether you're actually screaming or not.
I seriously wonder who comes up with that kind of ideas. If the user seems to actually be enjoying his experience at the computer for a change, by all means, let's start degrading his/her experience until he starts showing some stress.
And it's good 'cause you can save a few watts! At the expense of probably reducing the user's life expectancy a little due to a constant baseline of stress, not just make him enjoy that life less. But it's teh green!
How much self-hate does someone need to actually want to punish themselves to save the planet? I guess we'll soon know.
Parent
Re: (Score:2)
Sounds like they are running "Windows"
Re:Way I read it (Score:5, Funny)
Parent
Re:Way I read it (Score:5, Informative)
How much self-hate does someone need to actually want to punish themselves to save the planet? I guess we'll soon know.
I don't think it's self-hate that drives this thinking. Rather it's a desire to be aware of how one's day to day decisions have a broader impact on the planet as a whole - and choosing to limit that impact where possible.
The 19th and 20th centuries and the growth of industrialism and consumerism was based on the idea that resources are infinite and pollution negligible. Under those "constraints", there is no reason to constrain yourself - do what you want because there are not consequences. Sadly for us, those assumptions are not accurate. The resources are indeed finite, and the cumulative effect of the pollutants we produce are now measurable.
It IS indeed painful to shift from a "I can have and do whatever I want" mindset to one where you think about the impact of everything you do. The real problem is that it's impossible to track the impact of the behaviors of one person on the global system. _I_ can pee in the well and we all still have pretty safe drinking water. But if we all individually make that same choice, we all pretty soon have bad water.
As for this system, it sounds horrible and would most likely be abused in the worst way. The idea in one perspective sounds good... identify where resources are needed and increase them. But what you describe is more likely, particularly from a capitalist mindset - continue degrading the experience until it is just barely acceptable.
What makes much more sense is to make a little widget that can show how much energy is being used in a given state and let the user decide how much they might want to slow down the processor. If they care about saving energy, they can dial it down themselves to the level they can tolerate. If they want a faster experience (vital in number crunching and gaming), let them do that - and the widget can show the incremental cost.
In a similar way of thinking, they just installed a new "smart" electric meter on my house. I really hope I'm able to access the data from it. If I can get variable pricing based on peak load in the system, then I have a lot of incentive to time my dish washer, clothes washer, etc to do their work in the non-peak times. It saves me money and makes a more efficient load on the system. Everyone wins. Hopefully they don't screw it up.
Parent
Re: (Score:3, Insightful)
Point is, we really shouldn't have to make this choice.
Electricity is just electricity. It can come from coal or oil, yes. It can also come from a waterfall, or a nuclear reaction, or the wind, or the sun, even geothermal...
Saving a few watts, multiplied by thousands of people, still isn't going to make a tiny fraction of the difference of, say, replacing a coal plant with a wind farm.
No, I'm guessing they're mainly focusing on battery life for mobile apps. And I applaud them for that, but I don't know that
Rent costs (Score:4, Insightful)
What about the commuter crowd? Driving that gas hog as much as 100 miles each way, 5 days a week, because they are to damned good to live in the neighborhoods in which they work.
In a lot of cases, the commuter crowd lives this way because the gas is cheaper than rent near work.
Parent
Re: (Score:3, Interesting)
Re:Rent costs (Score:5, Insightful)
I commute, but I didn't choose to.
I live in a nice, small city (about 40k) in Ohio. I've lived in the same town my entire life. I worked for a local branch of a slightly regional company. They closed the division I worked for, and moved my job to their home office, 30 miles away.
They paid hourly for my drive time, and for my gas. The arrangement has changed some now that I drive a company truck instead of my own car, but it's still similar to what it was.
Now, I like my job. And I like my town. And I'm a homeowner (and also was one when my job moved). I'm not moving to that other city (let's call it Ghettotropolis, complete with burned-out houses, street-walking hookers, and lots of crack), for any amount of money. Where I come from, folks lock their doors sometimes. Where my job moved to, crackheads will smash your car window to get the change out of the ashtray.
Not. Fucking. Happening.
So, what to do? Do you propose that I find another job nearer to home? Nevermind that there aren't even any local companies which are in even remotely the same trade.
I do work from home quite a bit, nowadays, which helps. But still: I haven't CHOSEN to commute. I've only chosen to keep my job. And it's a good job - in a time of cutbacks and layoffs and late bills, this company is having the best couple of years that it's ever seen.
It isn't always someone's personal decision to be a commuter.
Parent
Re:Rent costs (Score:4, Insightful)
Parent
Re: (Score:3, Insightful)
Okay I'll bite.
Yes, I dropped a decimal point somewhere, your are correct on the number of zeros.
But then you also try to play the numbers game with your "if every person on the planet did XYZ".
There are an awful lot of people on this planet who don't even HAVE electricity, never mind a mobile device to save those odd Watts.
A country like US has an average of 11kW per person usage, while Bangladesh has an average of 0.2kW per person usage.
If we can save 1000W per person
No, you can't simply scale up the math
Re:So does this mean (Score:4, Funny)
What I really want is for a download to speed up when I drag the progress bar.
Parent
And of course... (Score:2)
Wide, crazy eyes and frantic button mashing mean that the CPU should be overclocked as much as possible, while closed eyes mean that the system should ignore changing the CPU frequency, and send a System Beep straight through the headphones.
Overhead? (Score:5, Insightful)
Re: (Score:2)
It's good that you cannot imagine that. Because if you could imagine that, then it might be something to be worried about.
As an aside, interpreting the data would likely be done by the processor, so if you're going to be running the processor at full speed, then the only thing to be concerned about is the draw of the
Re:Overhead? (Score:5, Interesting)
Parent
Re: (Score:3, Insightful)
I know it's not an embedded ARM system, but this does give an idea of the nearly negligible power savings available by halving your clock speed.
You got an 8.78% percent power savings. I don't think that's "nearly neglibible". Maybe you're correct in the absolute sense; what's a 2.8 W power savings? Then I'd say it still isn't too bad.
And yes, I'm the guy that pulls out the wall warts when not at home.
so what this means is? (Score:2)
Re:so what this means is? (Score:5, Informative)
Most of the drain users see today is OS bloat and Virus scan software bloat. Face it, A "fully updated" WinXP SP3 with a fully updated, modern antivirus package needs ~4 times the hardware a base WinXP (or even Win2K SP4) system would want.
Parent
Re: (Score:3, Insightful)
This is simple all OS/App developers need to be given a 3 year old PC to test on. They need the big honking system to code/compile on.
Re: (Score:2, Interesting)
All programs/OSes should work perfectly on hardware made in ~2003, many people still have these (or older) computers, especially if they live outside of high speed internet access, or aren't very computer literate.
That's actually just the start (Score:5, Insightful)
Actually, I'd say that's just the start of the problems. The next problem will be that half of anything you install nowadays, will want to preload itself or parts of itself in your tray, or install some services, or God knows what else.
And I'm not even talking proper spyware. E.g., even when I install OOo, the first thing I have to do is deactivate its preloading itself. 'Cause obviously they thought my RAM is there just so they can willy-wave about loading faster than MS Office, instead of fixing their brain-dead code to actually be fast. (Though apparently in the last release they actually did get around to optimizing a bit for a change.)
E.g., I install Sun's Java, 'course, it has to keep something in the tray just to make sure it can pester me to download the latest release I don't even want.
E.g., I install my old Audigy 4's software after moving it to another computer, and I promptly remember what I hated about its software in the first place. By default it installs a brain-dead bloated skinned second toolbar, so to speak, just in case I'm too stupid to launch its control pannels normally. And so it can get in my way when I accidentally move the mouse to its edge. It also installs stuff like its own CD/DVD detector (and launcher of the apropriate program for it), for no obvious reason, since Windows already does a perfectly good job there. It also blesses my computer with a bloated, slow loading splash screen, 'cause obviously doubling my computer's startup time is perfectly ok if it lets them shove in my face again that it runs an Audigy. Obviously my time and RAM are there just so they can advertise to me. Etc.
I'm not even singling out OOo or Java there, mind you. Lots of others do the same.
And then come the games, with their retarded DRM drivers and whatnot.
My point is that it used to be a time when you actually had to get virused or click on spyware to get half a gigabyte of your RAM full with crap. Increasingly in the last decade, you don't even need to do that. Just installing perfectly legit software can make your computer swap, if you're not savvy enough to find that crap in the registry and disable its auto-loading. Sometimes twice, because some are smart enough to re-enable themselves.
Parent
Re:That's actually just the start (Score:5, Insightful)
Parent
Re: (Score:3, Informative)
Re: (Score:2)
That's nonsense. A base WinXP system (instead of a fully update XPSP3 + AV) would max out the processor and the internet bandwidth within days, if not hours, of being turned on.
See, what happens is that friendly hackers automagically scan the ports of a base XP install, then kindly install their own "service packs" to help make sure the XP sys
First Step (Score:2, Funny)
Re: (Score:2)
Don't forget that these extra circuits and sensors will use power themselves, so the savings will be a bit less than you might hope. Also don't forget that this new bling will drive up the cost of NYM (Next Year's Model), so you'll be saving some money in one bookkeeping column by spending it in another....
Right out of Craig's List Adult Section . . . (Score:2)
They measure the user with eye trackers, galvanic skin response, and force sensors to find a CPU frequency that the user is satisfied with.
Um, . . . yeah . . . okay . . .
"The Empathic Systems Project"
Oh, what a giveaway . . . "I'd like to buy some empathy . . ."
This just in, breaking news (Score:2)
Corporate customers found a 60% power consumption decrease after they found that most users are happy with scaling their computer back to 333mhz once microsoft office is fully loaded. Customers reported that most power consumption occurred during employee recreational time at work, when Youtube and Flash games take up the majority of the user's cycles.
Waste of Time (Score:3, Insightful)
So if I walk away from my machine to let it process a job, it'll go slower?
If this is to save power, then reducing speed when an intensive task is performed is retarded, since you'll waste energy (having to run the task proportionately longer).
If we're only taking into account saving power when idle/mostly idle, then basing this off of metrics from the user is a waste of effort. Just test your apps and see what a user feels is "fast" for certain tasks, then attach those target times to those tasks, and let the CPU try to hit that target.
You'll waste less energy monitoring a user's behavior and galvanic boner response, and you won't annoy the user when your system behaves inconsistently.
If you want, you can let users specify whether or not they want to emphasize battery life or performance, or turn the feature off entirely and let shit work as it should.
The trick would be getting this shit implemented at level low enough that each app would be able to specify target times and specific tasks. Of course, if you're the fuckers worried about battery life, you're the one designing the hardware/platform, so you've got control.
Re:Waste of Time (Score:5, Interesting)
Except, this technology is NOT for computing applications, but for mobile applications - e.g., a phone.
For a phone, you do not want background processing tasks - they force the processor to stay "awake" and drain the battery very quickly. Even a simple task that wakes the CPU up every second will easily cause battery life to diminish from the 2+ weeks standby to a few days. (Take your battery capacity and divide it by the standby time - you'll find you have around 2-3mA to play with, which is just enough to maintain the radio connectivity).
Mobile processors have a technique known as DVFS - dynamic voltage and frequency scaling. The goal is to keep the voltage as low as possible (power consumed is proportional to voltage squared), which may mean you run the CPU at a lower frequency. There's a bit of overhead in switching frequencies, including having to ramp up core voltages and adjusting clocks, waiting for them to stabilize, etc.
The trick though, is to realize when the user really doesn't care for speed, and thus keep the CPU in a lower frequency (e.g., playing music), versus the user is actively doing stuff, and it would be desirable to have it finish as fast as possible (e.g., browsing the web) so while the user ponders, you can put the CPU into a low power state immediately, versus keep it at a slow clock and have the user wait. Also, you have to figure out when the user is doing something that really is requiring a lot of CPU power (playing movies), so you have to bump the speed up and hold it there, and not at the first instance of idleness, drop back down.
Basically, having this feedback ltes you find out what is going on - is the user not caring, and thus you should pick the slowest speed that'll get things done? Is the user actively engaged in the device, but the usage is bursty, so you should go into a low power state after the processing is done, or is the user doing something that requires processor, and dropping down wastes power due to overhead?
Parent
Re:Waste of Time (Score:4, Insightful)
The trick though, is to realize when the user really doesn't care for speed, and thus keep the CPU in a lower frequency (e.g., playing music), versus the user is actively doing stuff, and it would be desirable to have it finish as fast as possible (e.g., browsing the web) so while the user ponders, you can put the CPU into a low power state immediately, versus keep it at a slow clock and have the user wait. Also, you have to figure out when the user is doing something that really is requiring a lot of CPU power (playing movies), so you have to bump the speed up and hold it there, and not at the first instance of idleness, drop back down.
Basically, having this feedback ltes you find out what is going on - is the user not caring, and thus you should pick the slowest speed that'll get things done? Is the user actively engaged in the device, but the usage is bursty, so you should go into a low power state after the processing is done, or is the user doing something that requires processor, and dropping down wastes power due to overhead?
Everything you say is true, but it makes vastly more sense to determine the amount of processor speed needed by what the device is actually being asked to do rather than trying to glean the user's mood and how that relates to required processor speed. Decoding an mp3 is a low intensity activity, and you don't need to know the user's heart rate or any nonsense like that to know you can afford to turn down the cpu frequency if that's all its being asked to do. Similarly, no matter how emotional the user is getting over the text message they are typing, the processor is still going to be sitting in its idle loop 99% of the time waiting for the next keypress so it's perfectly safe to lower the frequency there too. If they're doing something that requires a lot more processor, well, again this is obvious from the processor's point of view. And while the switches themselves are slow from the processor's point of view, they are too fast to notice from the user's point of view so it's perfectly feasible to switch from one to the other as processor load indicates.
So given that we already know how* to tune a processor's frequency to match the work being asked of it in a way that minimizes power consumption but never appears "slow" to the user, what exactly does this add? Is it for when someone starts playing a CPU intensive game on their iPhone, but isn't actually playing it? Yeah I'm sure you could save a lot of power by realizing that the user isn't in the same room as the device, so their Quake framerate really dosen't matter. So would an auto-shutoff after two minutes of no user input, and my phone already has that too.
* It's not like there's some proven ideal algorithm for it, but nevertheless existing devices do a pretty good job and are getting better.
Parent
Hmm... (Score:5, Insightful)
I don't want to be "that guy on the internet who says it can't possibly work from the comfort of his armchair"; and I'm all for new and interesting sensor integration schemes; but this strikes me as the sort of problem that is already mostly solved with far simpler techniques.
We can already rank processes by priority, via nice or similar, and we already know a decent amount about user psychology(people hate waiting and find unresponsive interfaces enormously frustrating), and determining "what combination of speed states across time will execute this sequence of instructions with the lowest energy cost, subject to the desireability of having the results sooner rather than later?" is a solvable problem.
Can we really learn individual quirks, not covered by general rules, or is this basically a system that underclocks your phone until just before the point where your head explodes?
How is this new? (Score:3, Funny)
Repurpose the SysRq key (Score:2)
What good is the SysRq key? Repurpose it as a way for the user to say "please assign more system resources to whatever is in the foreground". If this can be done by clocking up, great. If the CPU is maxed out, then bump up the priority of the process. If there's nothing left to give, then the system beeps or throws a "tough shit, you bought the $100 computer" dialog box.
It does not seem like fundamentally new technology is necessary for us to be able to tell the computer it's lagging unacceptably. That does
Re: (Score:2)
I use that key still... how do you take screenshots?
And Alt+SysReq+{R,E,I,S,U,B} can safely reboot a locked-up linux system if the "Magic SysReq Key" kernel option is enabled.
Re: (Score:2)
Ctrl-PrtSc or Alt-PrtSc depending on whether I want the entire desktop or just the single application. I don't use SysRq *alone*.
Mal-2
Correct CPU frequency (Score:3, Funny)
The correct CPU and frequency is currently a 100GHz 16 Core beast with 4TB of RAM. Of course I will NEED a machine that is twice as fast in 18 months.
Or in other words... (Score:2)
... using a mood ring to control the CPU? The hippies will love it!
Excellent (Score:2)
Good that there is thought to this.
Kinda like tuning your codes to run really fast, then the poor monkeys in the basement send you a IR photo of some power couplings and ask what you're doing. I've always been going for flops but it has been getting a little more difficult now that I bring in power consumption into the optimisation cycle.
New measurement for the top500
flopspw ?
Re: (Score:2)
Sorry, that new performance measurement should be
flopspa
Re:Excellent (Score:4, Insightful)
You might be surprised, but a lot of commercial HPC sales are already based on flops/watt.
Lots of companies make extensive use of computational models these days, but have offices in older buildings that don't have sufficient power infrastructure. When your power supply maxes out at 50kW, flops/watt becomes more important than straight flops.
Parent
Seems rather retarded (Score:2)
I always want my computer to complete any task that I have to wait on as fast as possible. I don't like waiting if I don't have to. Thus, all necessary power should be thrown at a given task. The time to scale back, is when it is waiting on me. If I'm not giving it something to do, it can throttle back and idle.
However, we already have this technology. New processors and even videocards now do this. That is the technology that needs improvement. Have lots of power available, and only crank it up when there
This will be fun... (Score:3, Insightful)
Yeah, so that's why my G1 keeps asking me to turn it over, so the camera can track my eyes. Perhaps they should try tracking the acclerometers so they see them max out when the battery goes dead and I heave it one more time into the trash, only to pick it out again and recharge. Yeah, that's sure scientific. Good work there.
Or maybe they are working with the other Android phone on the market that has a user-facing camera.
For a phone, you do not want background processing tasks - they force the processor to stay "awake" and drain the battery very quickly
Yup. Stop calling my G1 a phone. It's a handheld. Phones have reasonable battery life. There. Carry on.
How about a shock sensor (Score:3, Funny)
I'd like a computer that speeds up, every time I smash the keyboard or mouse in anger, you know, like a human would...
That should be easier to implement than my previous suggestion, which was a speech recognition algo that interprets swearing in various languages and can tell the difference in intensity between "Ah crap" and "STUPID F&@#IN' GODDAMNED TABARNAK MOTHERF&*@&#$ OUTLOOK!".
Re: (Score:3, Insightful)
Nobody said anything about overclocking. And yes, underclocking does have limits imposed by the system's processor and BIOS. AMD and Intel already have features on all their product lines to allow for dynamic clock adjustments to reduce power consumption. AMD's cool and quiet feature will even lower the CPU voltage at lower clock frequencies to further reduce power consumption.
These guys aren't talking about new processor designs (though I'm sure some engineers at AMD and Intel read /. and will find this re
Re: (Score:2)
1. Windows works almost exactly the same way, except with a moronic additional "degrade" option which is usually disabled nowadays.
2. If you have occasional spikes of demand (as opposed to continuously running job/game), "powersave" probably uses more power. It's more efficient to spike the proc to max for a few seconds; finish the job; and go back to mostly-idle.