Measuring the User For CPU Frequency Scaling
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."
Does this mean that clicking a button multiple times and yelling at my computer will finally make my it go faster? Sweet!
Hey dumbass... I hope you realize that when this post gets modded down you will have negative karma.
It's almost impossible to recover from negative karma.
Time to register again...
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.
Convert FLACs to a portable format with FlacSquisher
I have to say, I have to be worried if there aren't caps based upon the chip in use.
If we're really wanting things to go faster will this push it too hard and overclock the system?
If we're really lethargic about it will it underclock the system too much? I don't know if running a chip too slow can damage it but I think there may be consequences besides battery life.
I cannot imagine that, in the near future, a mobile device will draw more power by just using full processor speed than it would by having to power all those sensors and interpret their data.
# cat
Damn, my RAM is full of llamas.
most people would be happy with something like win9x or win2k (linux for me thanks) on a 750Mhz CPU and 512 megs ram?
Politics is Treachery, Religion is Brainwashing
Computers changing performance based on our moods? Hmm...i'm thinking android girlfriends are closer than we realize! It would be interesting to see just how much battery power this would save on my rig?
I suspect users do not care if things are fast enough. So you want the cpu to run just fast enough that you are not waiting on the CPU. And you should be able to tell that without all that galvanic, eye-tracking nonsense.
I suspect any waiting that might actually annoy the user to the point these complicated sensors might read is not going to be fixed by the CPU speed.
Let's make it a good one, shall we?
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 . . ."
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
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.
moox. for a new generation.
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.
When I'm reading the news, the computer can freeze and I won't notice unless some animated ad freezes, in which case I'll be grateful.
But as soon as I wiggle the mouse or the clock is due to change, screen better respond.
If I'm playing WoW or watching a DVD, my CPU and GPU and the rest of the system better be operating fast enough to keep up.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Any word on how this compares to the current recieved wisdom of "when you have a job, do it as fast as possible, then go to sleep"?
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?
I thought all machines had sensory technology with reacted to the user's activity state. I just look forward to this being used for something besides making the machine malfunction when I need it the most.
Welcome to the Panopticon. Used to be a prison, now it's your home.
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.
A polar bear is a cartesian bear after a coordinate transform.
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 doesn't necessarily mean it will be able to DO anything about it, but at least we can vent.
Mal-2
How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
What a useless study. I can tell you what system I need.
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.
If I were God, wouldn't I protect my churches from acts of me?
This is a huge waste. It's much more efficient to get the processing done as fast as possible and then put the CPU to sleep until there is more work to do. If you slow everything down, the CPU is working longer which takes more power.
Why not just do like Linux can and does, have 4 settings that control how the processor functions.
I have the option between Conservative, Ondemand(Increases when processor usage is needed), Preformance(always at max), and Powersave(always at min). When my laptop is unplugged then it runs in powersave mode, but when plugged in then it is in ondemand mode.
... using a mood ring to control the CPU? The hippies will love it!
...what CPU frequency they'd give this kid
http://www.youtube.com/watch?v=kBVmfIUR1DA
This is the same technology the guy working the Scientology booth at the local mall uses when he asks you some questions that are none of his business. Of course you're squeezing it harder; you can't wait to tell the guy he's an idiot.
This paper was cute and pointless the first time I read it. Congrats on being the least technical paper in MICRO last year, now stop spamming your research to Slashdot.
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 ?
.
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 is a need. The idea being that the user never has to wait on anything, but the computer uses only the power necessary to complete the given task.
I don't want my computer sandbagging and only going half speed because it thinks that's "Good enough for me." No, go the speed the task you are doing demands (or full speed if said task needs more power than the system has).
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.
A polar bear is a cartesian bear after a coordinate transform.
Does it automatically overclock the Blackberry Storm so that it shows some semblance of responsiveness?
Or, instead of slowing down the system until the user is annoyed, you could just give them a slider bar somewhere to decide between "Fast" and "Low Power Usage." That way you're not stealing control from them and hacking them off.
I want my computing experience to be pleasant, not have the power turned down until I am stressed at how slowly things are going and then have it ramped up again.
Sorry, but I have enough stress as it is without artificially adding more.
It's like we are becoming monkeys jumping through flaming hoops just to satisfy the computer! Bah.
A Talosian's head appears: "Wrong thinking is punishable. Right thinking will be as quickly rewarded."
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."
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.
deleting the extra space after periods so i can stay relevant, yeah.
They have invented a computer that goofs off whenever you are not looking.
In the words of the immortal Homer Simpson: "You just go in there every day, and do it really half-assed... that's the American way!" My wife would probably say that I do this at home too (I just opened myself up for all sorts of insults there).
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.
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!".
-Billco, Fnarg.com
Time to burn some karma points.
Tell me one advantage this knucklehead idea possesses over having a simple slider/dial to adjust processor speed.
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
... so, presumably, this isn't really about improving the speed but is instead a desperate attempt to get an actual full day's use out of the G1 before it has to be recharged. Reach for those stars, boys. :)
A modern desktop (Windows desktop at any rate, presumably other OSes too) already does a lot of this. By default foreground threads get priority so you'll find that the foreground app gets to gobble up lots of CPU time if it wishes.
As for the clocking up, that is a hardware function that modern processors support well. My Core 2 Quad idles at about 2Ghz, which translates to a 6x multiplier. That's what it'll be running with system tasks going and a web browser and other such non-intense stuff. Now if I fire up something that hits the CPU, it clocks up to an 8.5 multiplier, which is 2.83GHz, it's rated speed. My graphics card does a similar thing, though with even larger clock deltas.
So we don't even need a key for users to press. All we need is further improvements to the existing technology. For example my processor could probably scale its speed even further. It also could potentially shut down ancillary cores. Though I have a couple hundred threads running on an idle system, most are doing little thus it could easily shut down two cores, clock the remaining two down, maybe one of them way down. So long as the time to restart the other cores and clock up was fast, it wouldn't be a performance or responsiveness problem.
We already have the technology we need, and it already works well. We just need to continue to improve it.
Why don't we just plug them into out butts and run 'em on methane. Mine would clock 10THz.
I peered through the paper, and I don't exactly see how throttling the processor to very low speeds (lower than Speedstep) when idle solves less than optimizing CPU clock speed based on user activity. When properly configured, the speed "bursts" are as short as the burst is needed (i.e. when loading a program, or when compiling), and multiple step levels ensure that the CPU isn't going from minimum to maximum instantaneously (though this behavior can be configured).
Maybe I just missed the point.
IMO, this is a terrible idea. Microsoft has tried to "interpret" what the user wants for decades and that didn't only fail, it made Windows one of the most annoying products on the planet. The last thing I want is my PC to constantly "interpret" me to figure out how slow it can run, more than likely keeping me at a constant level of aggravation in order to save a few mW. I'd rather my computer amaze at how fast it started up Firefox for once, not that it shaved $0.05 off my monthly power bill by throttling itself while I pull my hair out and smash my peripherals. This is not about going green, this is about a group of PhD's (or PhD students) trying to save their previously hip project (or thesis) by farming some hype off of /.
If your troll account has positive karma, you fail as a troll.
cheque please.
i > u
We did some work recently where we showed that in a lot of cases, running the CPU at a lower performance point actually resulted in more energy usage -- scaling down the CPU frequency means everything takes longer to run, which means that you get less time to spend in low-power idle modes. There are also a lot of other complexities with frequency scaling... Particularly on a platform like the Android where there would be multiple scalable frequencies, etc.
There's a whole lot of other problems with the slower-is-better approach... But check out the paper we've just published.
As a measure of QoS, I think this is quite cool work, but the way they translate this into frequency scaling seems broken.
Koala: A Platform for OS-Level Power Management
Great. Just what I need - a computer with an attention span potentially shorter than mine.
Test it on Jim Carrey! Can't wait to see the overlocking results!!!
.
you've never actually had negative karma, have you?
-- 'The' Lord and Master Bitman On High, Master Of All
Interesting potential for determining what people really think of Gnome v KDE, Linux/Gnome v Windows Vista v Xp etc
The power consumption was 29.1 W [lowest] and 31.9 W [highest]
That's a 2.8 watt difference. Over a year, that's 88.4 megajoules, or 24.5 kilowatt hours (*).
Not knowing what your power company charges you, you'll have to figure that out for yourself.
It's always nice to know whether it costs nickels or dollars :) ... Assuming of course you make the "meaningful" choice to have your system turned on but idle, instead of it being max-clocked and doing make-work. Shrink the dollar amount by your real savings percentage (50%? 10%? 1%?).
(Of course, trees don't grow on the money, but on healthy planets.)
(*) figures thanks to GNU units: (2.8 W * year) and (2.8 W * year) / (kW * hour); some decimals were chopped.
... is needed.
A small application, that monitors CPU usage:
If on average (far) below 100% for multiple seconds, scale down
If on average (very) close to 100% for multiple seconds, scale up Basic functionality of any modern chipset in desktop systems, works like a charm. If the user does some obscure thing that will lead to non-optimal scaling with the previous method, he may set the frequency manually (I use "SpeedSwitchXP" for that). Problem solved.
I really don't see how having a process to capture and evaluate data from sensors/camera that _always runs_ will help to save any energy, especially on embedded devices.
Alternatively just give the user some physical buttons or maybe a wheel (sthng. like on headsets for volume control) to choose the speed for his embedded device.
They need to take into account what is being processed in the background too.
Don't want a compilation slowed down just because you get bored and nod off.
---- Booth was a patriot ----
Ion.simIAn.c, you alabama hick - Prove what you claimed about being a programmer (because all your errors from the past week now & more don't show any of us you are that is certain, lol!) & tell us more about the Gigabyte IRAM being a piece of trash (it works on Windows, but not Linux according to YOU @ least, so what is the "trash" here? Obviously the OS you use & its SATA access most likely).
"I'm a programmer." - by ion.simon.c (1183967) on Saturday May 02, @11:17PM (#27803057)
Really? Ok, same question you asked ME to prove & I did via the lists below you no longer question (along w/ other proofs I gave you but when YOU are asked for the same proofs? YOU RAN!)
SO, that "all said & aside"?
Prove to us you are a professional programmer, ion.simIAn.c, won't you?
After all, you CLAIMED that you are above, & demanded others do so as well, here:
"You claim that you're a professional. Prove it" - by ion.simon.c (1183967) on Sunday May 03, @08:52PM (#27811101)
OK - See the lists below (contact the magazines, publishing houses, or software companies involved @ your discretion, if you wish)... because it truly IS a pleasure watching you stick your foot in your mouth, each time you falsely accuse myself & others here.
So - professional technically means getting PAID to do a job, right? That's there below in the "My Name is Ozymandias, king of kings: Look upon my works, ye mighty, and despair" list, in fact, 1st entry...
AND
I've answered ALL of your questions (the ones that matter, & I did so, w/ out writing out a book to do so), here -> http://tech.slashdot.org/comments.pl?sid=1219095&cid=27806379 & here also -> http://slashdot.org/comments.pl?sid=1219095&cid=27853857
Funniest part is? When I and others (MEK_LoveBug) asked YOU to prove YOU ARE A PROFESSIONAL PROGRAMMER, as you claimed you were? You RAN, lmao!
----
"Google failed to find any offical mention of your work with Russinovich" - by ion.simon.c (1183967) on Monday May 04, @10:57PM (#27825779)
GOOGLE didn't fail, YOU DID (as usual, per this reply AND the list of your screwups here I enumerate below in this exchange)...
See this -> http://www.pcmech.com/article/defragging-the-windows-page-file/ (& the comment by "SuperFluid" there)
YOU can't even GOOGLE something right, lol...
You're only showing yourself as what you really are: Nothing more than a "I can't do anything w/out GOOGLE" type online...
SO, AGAIN - YOU say you're a programmer? PROVE IT!
(So, how do you like it? After all, that's the kind of crap you've been saying to me & I provide proof below... and, you do not, & YOU have NOTHING LIKE THE LISTS I PROVIDE BELOW, to your credit)
----
"I've emailed Mr. Russinovich to figure out what work that you've done with him" - by ion.simon.c (1183967) on Monday May 04, @10:57PM (#27825779)
For Sunbelt Software (I'll save you the time there) to whom we contracted out wares we had written, thru LC Tech!
(& also MANY years later, in 2003, when I fixed up his pagedefrag program, instructing him where it was hardcoded and how/why it could adversely affect the operations of his application if people moved their pagefile.sys location AND eventlogs (which is doable on both accounts, & he STILL has a hardcode to the latter) to another disk (he had them hardcoded to C: drive only, & it made his program fail). In the end? Well - he emailed me back thanking me in fact.
----
"You're thread's not stickied on xtr
I read this article as "we're going to provide you with a means to make your computer throttle back as far as possible without getting in your way, and you can decide what to do with it".
Are slashdotters really this paranoid these days?
Still, requiring the user to be annoyed (even a little) seems like a bad idea to me (but then, I'm a humanist who really wants the world to turn into a utopia where everyone is happy, so maybe I'm just biased). How about choosing the lowest clock speed that gets things done when they need to be done? For user interface things this might be the inverse of the refresh frequency of the display, for music decoding it might mean fast enough to keep the buffer full, and so on. A lot more sensible. In my view, every device that annoys users, even a little, is defective.
Did anyone go looking for the Android app "NU JamLogger" in the Android Marketplace? I couldn't find it and tried a variety of likely search terms.
How much of my G1's precious battery power was wasted on this fruitless search? We'll never know.
apk stop it already. You are making me laugh and ion.simon.c is making me cry at how silly a man can be due to pride or shame on his end of things. I have been following this since last week and it has been one of the most outrageously funny and sarcastic thread battles I have ever seen to date. You must realize that ion.simon.c wont tell us he is a programmer because it is obvious from his list of mistakes and false accusations above that he is not and certainly cannot prove he is since he avoids both your and my questions from last week in regard to that much. Seriously apk, even if he came up with some type of evidence his list of mistakes would invalidate myself ever thinking he was any good at it in any event. At this point it is a waste of time even trolling him back even though you have proven he started it up with you first and then tried it once more the past week. Some people never learn like ion.simon.c or they like taking punishment they bring on themselves.
In the experiment, they used big expensive external devices to measure the user reaction. But as soon as you add those devices to the calculation, it stops to make sense...
Any sufficiently advanced intelligence is indistinguishable from stupidity.