Harvesting & Reusing Idle Computer Cycles
Hustler writes "More on the University of Texas grid project's mission to integrate numerous, diverse resources into a comprehensive campus cyber-infrastructure for research and education. This article examines the idea of harvesting unused cycles from compute resources to provide this aggregate power for compute-intensive work."
Does anyone realize that running a CPU at 100% takes more electricity than running a CPU at 10%?
"wasted compute cycles" aren't free. I would assert they're not even "wasted".
Google's desktop search is one example where the timing and recovery back to the user is really done well.
__
Laugh daily funny adult videos
There are several non-commercial distributed computing systems, so the GridMP system isn't anything particularly new or groundbreaking. However, in companies that run very resource intensive applications and simulations, such a distributed system that uses unused CPU cycles has some serious applications.
However, the most critical aspect of this type of system is not just that the application in question is just multithreaded, but that it be multithreaded based on the GridMP APIs. To do such would require either a significant rewrite of existing code or a rewrite of it from scratch. This is not a minor undertaking, by any means.
If the performance of the application and every cycle counts, then that investment is definitely worth it.
Jesus saved me from my past. He can save you as well.
REusing idle cycles? Really?
brwski
"Because without beer, things do not seem to go as well''
are harvesting spare cycles all the time. I don't think there are much cycles left over anymore!
Oh well, what the hell...
in Final Cut Express or Shake or DVD Studio by using the PCs that I have on the network to do the heavy lifting required.
Like water, like electricity, like natural gas and shares of Enron stock?
Okay, I'm gathering up lots of unused CPU cycles. But if I were going to reuse a cycle, I'd probably want to reuse a cycle that did something...
Who wants to pay me for the past three years of my computer idle time?
Hey, pay for my idle time too, arcades aren't getting cheaper.
Someone set us up the bomb, so shine we are!
"Compute" as an adjective is just weird. Keep your creepy clustering terms to yourself kthx
This is a very insightful post, but has two crucial counterarguments
- Does anyone realize the cost of buying extra computers to handle peak computing loads?
- Does anyone realize the cost of idle high-tech, high-paid labor while they wait for something to run?
The proper decision would balance these three (and other factors) in defining a portfolio of computing assets that can cost-effectively handle both baseline and peak computing loads. Idle CPUs aren't free, but then neither are idle people or surplus (turned-off) machines.Two wrongs don't make a right, but three lefts do.
---> Does anyone realize that running a CPU at 100% takes more electricity than running a CPU at 10%? ---
is it? i'm WAITING FOR OTHERS TO ROAR!
bty: do we have some OSS software of similar kind... that can be used for similar network (of frends... & within companies & its branches?)
I haven't seen any SIMILAR free & flexible solution that can be imprimented by anyone willing to...
Imagine a cluster of those -
never mind...
I don't know the meaning of the word 'don't' - J
Does anyone realize that running a CPU at 100% takes more electricity than running a CPU at 10%?
"wasted compute cycles" aren't free. I would assert they're not even "wasted".
And neither are the computer cycles reused as the slashdot article would have you believing.
How can you reuse something that was never used in the first place?
http://gridengine.sunsource.net/
Free and opensource, runs on almost all operating systems.
I thought that was what spyware was for? When you are not using your computer, and while you are using your computer too, let your computer send out e-mail and perform security audits on other Microsoft Windows computers! In exchange, you will get free, unlimited access to special money saving offers for products from many reputable companies, such as Pfizer.
Powered by caffeine and sugar; BSD
What you are saying was perfectly correct even 3 years or so ago.
But case in point: My Athlon64 computer doubles its wallplug powerdraw (including everything:PSU, Mainboard, HD, ect) at 100% load compared to idle desktop (ok, cool%quite helps pushing idle power down).
The cpu IS the biggest chunck besides some high-end GPUs (and even those need MUCH less power when idle), and modern cpus need 3-4 times as much power under full load compared to idle.
HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
Could we really do this stunt? I see no reason why we could not. Dassault has done it.
Dassault, a French company, designed and tested its new Falcon 7X entirely in a virtual reality. The company did not create a physical prototype. Rather, the first build is destined for sale to the customer.
Before you can use the idle cycles, you first have to remove all the spambots, spybots, adware and screen savers that are already running on these machines. Also, about ten seconds after the regular user comes back from lunch, the shiny new grid computing app will be broken and all the crap apps will be back, so the maintenance cost of this system will be huge.
Oh well, what the hell...
http://www.tomshardware.com/cpu/20050509/cual_core _athlon-19.html
60-100W difference between idle and full power consumption. That is not an insignificant amount of power.
I think it's great as long as they're careful not to impede on the user working. Done badly these applications get annoying if they are too pushy about beginning their processing before a reasonable user timeout.
Even back in the Windows NT4 days I would put a long-running task to Idle priority and the machine would be as responsive as when the task wasn't running (though I don't recall running a disk-intensive task that way). I've noticed the badly written apps tend to be viruses and P2P software, crap you don't want to be running anyway.
Tag lost or not installed.
PVM offers both the spec and the implementation, MPI offers a newer spec with several solid implementations. But no, NIH-syndrom prevails and another piece of half-baked software is born.
Where I work, the monstrosity uses Java RMI to pass the input data and computation results around -- encapsulated in XML, no less...
It is very hard to fight -- I did a comparision implementing the same task in PVM and in our own software. Depending on the weight of the individual computation being distributed, PVM was from 10 to 300% faster and used 5 times less bandwidth. Upper management saw the white paper...
Guess, what we continue to develop and push to our clients?
In Soviet Washington the swamp drains you.
Technology like this is interesting, but there are other ways to harvest spare CPU cycles.
Mainframes have used batch jobs that ran during the night forever.
10 years ago my college let you run batch jobs on any of the hundreds of Unix workstations. The catch is they would go to sleep when someone logged into the console and would only wake up when that person walked out. In theory this improved CPU utilization a lot. In practice it didn't, since there weren't that many people running jobs that took more than a few minutes to finish, i.e. almost everyone sat down at a terminal, logged in, did their thing, and logged out.
Heck, your PC probably does "janitorial services" like like antivirus scanning, indexing, disk-optimization, and other tasks when the CPU is relatively idle.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
How much energy does it take to harvest the energy?
How many cycles does it take to harvest the idle cycles?
Is the balance positive or negative?
I apologize in advance as this question will clearly illustrate my ignorance of these types of programs.
Is it possible for two different CPU-reaping programs, such as Folding@Home and Seti@Home to be doing the same math problems in some instances?
Say, although ludacris, bear with me, they both wanted to use computer to find out 5 * 7, and they both wanted to know 7 * 9. Could one computer run those sets of instructions once, and distribute the result to both programs to do in essence, double the work?
Distributing computing processes to third parties is much more inefficient. The workload has to be distributed in smaller packets, it has to be confirmed & rechecked more often, and the same workload has to be done multiple times due to not everyone runs a dedicated machine or always has 'spare cpu cycles.'
I would agree that distributing the work load is cheaper in the long run, especially with an increase in the amount of participants, but it is not a 1 to 1 cycle comparison, and therefore it is not necessarily 'taht much cheaper', 'more efficient', or 'more prudent' for a research facility to rely on others for computing cycles.
Of course the grid will be less money up front, but I think you will find that performance to power consumed will be higher (Especially if you use a water cooled cluster). The Adminstration costs will definitely be higher as a campus wide grid will be a much more complex animal than a straight beowulf cluster.
Now onto the performance issues.
With such a grid you limit yourself in several performance related ways:
Most Beowulf cluster are built with Homogeneous Hardware which allows for code optimization.
Also having different speed machines means that results are going to be obtained at differnet intervals so you would have to limit or remove the interdependence between the nodes.
Q: Will Sun make Java Technology Open Source? A: Sun's goal is to make Java as open as possible and available to the largest developer community possible. We continue to move in that direction through the Java Community Process (JCP). Sun has published the Java source code, and developers can examine and modify the code. For six years we have successfully been striking a balance between sharing the technology, ensuring compatibility, and considering the needs of a growing installed base of more than 2.5 million Java developers who depend on us. We are certainly evolving Java through the JCP to a model that works for all involved but that also ensures compatibility. Cross-platform compatibility has always been the key to Java's success and integrity; a notion we feel was protected by Microsoft's agreement in January 2001 to settle the lawsuit regarding Java technology.
I take it that's a 'no.'
XML UI Browser/Platform
Why not use condor?
It seems like this article exists merely to hype the IBM clustering solution.
It is true that the Beowulf cluster would be faster/more efficient for dedicated tasks. However, using free cycles on idle computers is not quite the same thing.
The Beowulf cluster is designed to process the task using as many machines as necessary. The Grid computing system must be able to handle the computation being interrupted at any time and only process on machines that are available.
The two domains are related, but are completely opposite ways of approaching the problem. The Beowulf cluster is designed to tackle the problem head on by throwing sufficient power at the task. The grid system is designed to squeeze out whatever spare cycles are available from existing resources.
If you have extra Macs, you can with DVD studio and Shake. Look up qmaster.
Mod point free since 2001
Heterogeneous Hardware - This is a major issue.
The kinds of things that interest high-end computing geeks tend to be extremely sensitive to round-off error.
If you're trying to get accurate results by spreading calculations around among disparate machines that might deploy e.g. IEEE 64-bit doubles, IEEE 96-bit doubles [Intel & AMD], IEEE 128-bit doubles [Sparc], or various hardware cheats [MMX, SSE, 3dNow, Altivec], then trying to make any sense of the results will drive you absolutely bonkers.
PS: A good place to start in understanding the uselessness of e.g. 64-bit doubles is Professor Kahan's site at UC-Berkeley; you might want to glance at the following PDF files:
Will running these programs make my computer less reliable later? Shorten it's productive life (2-3 years)?
I have a Dual 2.0 Mac that I leave running all the time because it's also acts as my personal web server, and because it's just easier to leave the computer on (not asleep) all the time. I run Folding@home because I believe in the science and research and know that my contributions actually help good science. But the idea of wear and tear of the machine has crossed my mind and want to know what the negatives are to doing this to the machine (besides having to pay for the electricity).
My P4 conumes about 200 watts at the plug while under load, less than 100 while idle. All at a crappy power factor of 0.6.
Remind me to boycott that first customers airplanes. I really don't want to be used to alpha test a new aircraft.
Good point. Having to rewrite the application to make use of a parallel MPI can be a pain. Condor is a free full-featured batch system that allows you to run apps on remote machines without having to recompile them
Only concern I imagine is when those apps hit the drive (wear and tear on the one important piece of non-solid-state equipment a computer has).
:-)
Or if you have an unstable cooling system that extra heat pushes over the edge. The latter would be good to know about anyways.
Someone set us up the bomb, so shine we are!
The voltage from my idle memory cycles goes through a series of capacitors and ICs to make my fancy-dancy lights blink so I won't have to buy new computers and waste power - and all of this is within a 133 MHz underclocked pentium box with 32 MB ram running linux.
I'm saving the world!
I'll be your candy shop of infinite deliciousity if you'll be my discotheque of endless rump-shaking.
Ya, let's countries such as China and N. Korea have such access to free engineering. After all, we want oppressive regimes to have as much power over their own citizens. I mean, when was the last time YOU could fly your own jet? Such gaps between non-democratic governments and it's citizens make much-needed revolutions that much harder to achive.
Life is not for the lazy.
I'd never use a G5 for a webserver. What a waste! Go build a CHEAP PC and slap Unix on it, and use that. Cheap PCs are good for that.
I stopped using Setiathome a couple of weeks ago when I tried to use the latest version of FreeBSD 4.11. Boinc, the new client, seems not to run at all. Never connects to the server, nada.....:-(
It's either on the beat or off the beat, it's that easy.
I moderate therefore I rule!
--
The short answer is Yes. The long answer is YES chances are it will shorten the productive life of your system..
As others have stated aboive running your system at 100% will increase heat etc... computers are like anthing else, run it hard enough and you will shorten the life span.
-=Linsys=-
http://www.intrusionsec.com
I saw some some posters from the fraunhofer institute in germany on the subject of power, with a graph of specint/watt.
0. all modern cores switch off idle things (like the FPU) and have done for some time.
1. those opteron cores have best in class performance
2. intel centrino cores, like the i740, have about double the specint/watt figure. That means they do their computation twice as efficiently.
In a datacentre, power and air conditioning costs are major operational expenses. If we can move to lower power cores there -and have adaptive aircon that cranks back the cooling when the system is idle, the power savings would be significant. of course, putting the datacentre somewhere cooler with cheap non-fossil-fueled electicity (like British Columbia) is also a good choice.
How about we do something that's a little more pratical and useful such as finding new drugs that will cure cancer.
Err, not precisely. Intel's Pentium M can create a system that draws 132 watts at maximum CPU load, and runs nearly as fast.
I've been buying AMD for about five years, but I think my next system will be a Pentium M. Just as soon as they're a bit cheaper...
--grendel drago
Laws do not persuade just because they threaten. --Seneca
In addition to Professor Kahan's site, listed above, you might want to read this article over at Sun [which references SPARC's 128-bit IEEE double, known as the "SPARC-quad"]: Unfortunately, I don't think it lists an elapsed time for the 128-bit calculation [only for the 64-bit calculation].
As others have stated aboive running your system at 100% will increase heat etc... computers are like anthing else, run it hard enough and you will shorten the life span.
I overclocked my Celeron 300a several years back to 450Mhz, requiring me to boost the voltage/power consumption, and thus heat. The common understanding was that the increased running heat increased silicon decay, but it does so at a rate that is irrelevant - e.g. that chip has long been sitting in my garage in a "gotta get rid of this" pile, so whether it would die in 5 more years rather than 10 is somewhat irrelevant.
Seriously. We're talking about literally a 30 year old idea. By now it should really be built into every OS sold. The default configuration for every machine put on a network should link it into the existing network queueing system that you all have running at your sites.
Government of the people, by corporate executives, for corporate profits.
Your choices are:
Note that the solution in this article is obviously not free due to electricity and other support costs, but it is undoubtedly cheaper than buying your own cluster and then paying for electricity and the support costs.
Woulnt it be neat to build a system for sharing idle cpu-time?
Just imagine the enormous amount of "wasted" cycles that could be utilized. If everyone that participated in this network installed software that was capable of computing certain things, maybe for rendering or compiling or whatever. Then when you wanted something compiled you just sent out lil chunks of work and the global net of cpus could compute this and send you back the results.
A ratio system could even be used to prevent misuse, like, the more cycles you contribute, the more you can use.
Are there networks like these already?
Been done before. Nowadays, the big thing is better power management. How 'bout scoring a little more for originality here: "Harvesting and Reusing Idle Computer Cycles with Blue LEDs and Multicolored Sugar Sparkles".
Really? Looked like it did fine in media encoding as well; it's just the synthetic benchmarks (PCMark04) that it falls behind in.
--grendel drago
Laws do not persuade just because they threaten. --Seneca
Several years ago I also bought a 300a and overclocked it to 450. The sales guy told me it would die within a year (probably a scare tactic), but the chip is still running just fine!
In fact, my sister inherited the machine, so with the amount of spyware/malware I'm sure she has installed, it's probably been worked pretty hard over the last several years.
Yummah... idle cpus.. mmmmm, i'll take four please, with extra CPU HTL topping, and a bit of thermal paste to the mix (drool)
Well you are not going to be using much open source software to design it, so what is the point?
An Education is the Font of All Liberty
Sorry, but I've never really understood the allure of grid computing. I am a parallel computer user (Sciborg at NERSC, the Earth Simulator in Japan, Klondike at ARSC) and I've never had the need for empty processor cycles on a network with a lousy backbone. Except for embarisingly parallel codes that farm out domain space and don't require processor communication, the whole bottle neck in parallel computing is the backbone of the network and not usually the lack or power of the processors. I guess it might be a novel tool for solving some 10-D integral via monte-carlo integration, but it doesn't do much for everyone else (e.g. the majority of us don't run embarisingly parallel codes).
There is increased wear and tear associated with running a computer. However - in university environments, this may not matter. At the university where I did my undergrad work, and now at the current one where I work, all general student-use computers in labs are replaced on a three-year basis. At any one time, there is a huge glut of just-barely-not-newest computers to be had. So shortening the lifespan of these machines really won't matter. The lab boxes are on most of the time anyway, and will be rotated out before they break.
The Wisconsin Condor Project has been harvesting unused compute cycles for over a decade. The software is free to use and deploy, and is used by various corporations including Western Digital and others.
use all their regular workstations as part of their render farm at night.
The higher the technology, the sharper that two-edged sword.
Yes but compiling an application to make use of parallel MPI is often necessary to distribute it. If I have an application that is serial, I still can't distribute it's load across a cluster running condor. I can send that specific application to a specific node to run and I can run multiple instances of the application but I cannot make the application run faster than a on a single box with similar hardware as the node. In fact it will run slightly slower because the process has to be moved from the master node to the node running it.
You will however get some advantage from cluster software that can migrate threads from a multithread application across a cluster.
As much as I dislike Chinese and N. Korean governmental systems, I feel that it's important to note that revolutions need not be based on military actions. In fact, two of the most notable military regimes currently in power got there at the hands of a military revolution: Cuba, and China.
Perhaps something like the post-Cold War Velvet Revolution is in order. It's unlikely, but much preferable, compared to the bloodbath of a pitched battle...
Ye University of Texica be collecting paypre for the purposes ... what? What good is paper? What you write on it is important.
Hmm, where have I heard about this before again?
Exciting to read a paper on this fanastic new idea.
Beware: In C++, your friends can see your privates!
When I'm doing pedestrian things - read anything but games, videos, or high-end graphics work - my graphics card is underutilized.
Wouldn't it be cool to utilize it to its full potential?
Even better, when the screen saver would normally in, just turn over the graphics card completely to the background process.
Imagine Seti@home running on your GPU.
PS: Ditto some other processors that aren't being used to their full capacity.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
What a crock of shit. They're telling me that structural and flight testing has been rendered obsolete? And I suppose their manufacturing process is perfect (perfect in the strictest sense of the word)?
Damn marketing bullshit. A little bit of truth bending and obufuscation = megaimpressive press release.
IAAAE (I am an aeronautical engineer)
If you want to do a certain amount of computing, then you are going to pay for the electricity anyway, whether in desktop use, or mainframe use, or dedicated cluster use. The savings come in the form of deferred capital expenditure, while increased costs will be incurred in maintenance and helldesk support. Electricity use is pretty much immaterial.
Oh well, what the hell...
.. will be the collective computing power of all the PC's burning nearly-idle cycles just downloading porn.
Anyone that can harness that power, is made.
Could be win-win. Install "clustering software-x", download free porn. Legally.
Q:I was listening to a CD in Grip and it sounded horrible! What's up? A:Perhaps you are listening to country music
If a University really wanted to do something with all the hundreds/thousands of computers sitting around doing nothing for 90% of the day, they should look at distributed storage. There are thousands of highed ed institutions all over the country giving you incredible data redundancy. Most University Computers don't allow much local storage anyways. No more UPS losing your tape backups of financial bank records. The prOn industry has been doing this for years, but a more formalized approach might help.,
Our new buses are the exact same - designed in CAD - no prototype phase - first production models were sold.
And they are shit.
Flimsy, awkward, handle like a drunken whale, weak brakes, and parts you *physically cannot get to*.
There is a very good reason for prototypes - you get to see what breaks *before* you invest in production tooling and large material and parts purchases.
They're gonna lose their ass on that...
Why can't I mod "-1 Idiot"?
I'd love to have a Java vm or net runtime that runs on the GPU in my video card.
That would let me run stuff both on the main cpu + the gpu since the GPU does almost nothing 99.999% of the time (I don't play FPS anymore).
This relates to my research paper, "Turning Processor Cycles Back In To Electricity" where I've showed that it's possible to output electricity from a computer through a judicious use of NOP's.
So if you don't save the cycles to begin with, we can always turn them in to electricity!
I can see some campus-based grid network thing being used in a future sci-fi "the-computer-became-self-aware-and-tried-to-kill- us" plot.
Furry cows moo and decompress.
So what should I have done with that CPU power?
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
BURP is a project of a similar concept built off of BOINC. I'd link to it but I don't have it. Just Google it.
I am Spartacus
There are costs that fall on the person who's donating the cycles, and costs that fall on the person who's getting the benefit of them. Unless both people are in the same organization, operating under the same budget, it's not just a question of minimizing the total cost. In the typical situation, the cost to the donor needs to be almost zero, otherwise the donor isn't going to do it. Even in a university environment, one department may have a separate budget from another department. Or electricity may be provided from the campus without a budget charge to the departments, but other costs, like paying sysadmins, may be specific to the department.
Absolutely spot on! Something needs to align the costs and values of the exchange of CPU electricity and CPU value. For operations like SETI, the motivation to donate CPU time seems to be combination of coolness, charity, and some degree of apathy that residential electricity users have with respect to usage.
I think if grid computing is ever going to take off, it needs to become a capitalist enterprise. If someone would pay me a few bucks a day for my spare cycles, and the client was open-source, and there was close to zero hassle, I'd gladly do it. Remember, one of the good things about a free market is that it tends to be an efficient way to allocate resources.
Very insightful. Anything that has certifiable value (i.e., people can agree on what it is being offered and received) and can be "delivered" to others will end up in a marketplace if the transaction costs are low enough. With PCs and broadband, one could argue that this is readily possible. In fact, at some level, we already have a market for "spare cycles" in the form of the trade or renting of spammers' botnets. In the commercial world, IBM and Sun are working hard to make this a reality, too.
Of course, if anyone can "sell" their PC's cycles, then apartment owners will have to stop offering "utilities-included" leases. The day will come when some landlord discovers an apartment with a couple dozen PCs slurping down the kWh and raking in the money. If CPU time sells for just $0.25/hr/CPU (1/2 to 1/4 the resale value), a couple dozen PCs can bring in more than $50k/year.
Two wrongs don't make a right, but three lefts do.
How JAVA's Floating-Point Hurts Everyone Everywhere
That presentation was done in 1998.
That'd be seven years ago...
Ever heard of java.lang.StrictMath? Didn't think so. Been around since Java 1.3. Current version is 1.5.
hitting the hard drive may not be a bad idea... those deskstar/maybe travelstar failures were apparently due to fluid gumming up the head from extended idle operation without the head moving around. Apparently some later firmwares exercise the head to shake off excess fluid.....
This used to be a real annoyance when I had a Sun lab a decade or so ago - the server was a big SparcStation 2 with a great screen on it, and most of the clients were IPXs or Sparcstation 1s, and if somebody had running one of the really cool fractal screensavers as their X environment, and logged in to the server to do their applications, the whole network could dog out if they went to lunch or went home for the night without logging out first. The equivalent I put up with these days is that I run some Protein-Folding-At-Home variant on my desktop, and while I use a display-a-picture-every-few-minutes screensaver, my wife runs some flying-starfield screensaver, so if she was the last one to log on, there are fewer CPU cycles available to fold proteins with.
By the way, NEVER run grid-computing applications on laptops - they aren't made for the constant heat load, and obviously if you're using them on batteries, you'll find that they're not made for heavy frequent battery drain either (I learned this the hard way commuting by train back when I was running the GIMPS Great Internet Mersenne Prime Searcher....)
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
gee i wonder if it could work on my home network? it would make one heck of a gaming machine hehe!!!
If these people were serious about grid computing, they'd offer a way for people to sell cycles. Altruistic donation may be good for some people, but the rest of us like to see real money for this sort of thing. If nothing else, covering some of the costs (and not just electric power) of having a machine would be nice.
"Little does he know, but there is no 'I' in 'Idiot'!"
This isn't just about parallel computing - in fact if you'll read the article you'll see that they're using MPI for handling parallelism! Grid computing isn't about reinventing inter-node communications - it's more about inventing inter-node scheduling.
Your cluster - is it so fast that you're never stuck waiting for jobs to finish? If not, then you could probably benefit from being able to borrow time on someone's larger system. Is your cluster so well-utilized that the load's always around 1? If not then you've probably got spare capacity that someone else could benefit from. The fact that both you and those others are using MPI is necessary but insufficient to allow you to cooperate.
So they haven't even built one yet? What makes you think they planned on having ANY customers?
from the USDA (or CAP, for those in Europe)? After all, I'm "harvesting"
http://burp.boinc.dk/
It is still very much in Alpha stage, but it is moving along nicely, and from my perspective does a very nice job. Not to mention, when it does move to production status, you have a built in userbase to render projects. Check it out, and post any questions you might have in the Message Boards. The owner, Janus, is very user-friendly.
...there was a great disturbance in the 'Net...as if millions of computers cried out in terror and were suddenly silence
I would like to see a windows based program that gave MPI-like access to idle processor cycles. This way you could boot a program like ParallelKnoppix somewhere on the network and either run C, Fortran, Lisp based computational applications. This would be very useful for most IT staff.
we harvested cpu cycles by playing Quake3.
If Practice Makes Perfect, And No One is Perfect, Why Practice?
Right, as if CPU cycles are the limiting factor in designing new aircraft. Dassault may not have built a prototype, but they did have rooms full of aeronautical engineers who actually know what to do with all that computational power.
Dassault isn't alone in skipping the prototype, by the way; this is pretty much par for the course for commercial aircraft. When there are no significant new developments (hardware, aerodynamics [1]) to test, the only use for a prototype would be to validate the manufacturing process, which can be done in computers instead.
For military aircraft (where the technology changes much more between generations), prototypes and even experimental aircraft (X-planes, EAP) aren't uncommon.
1: yes, new aircraft do use new technology, but in commercial aircraft it's all incremental so the effect is predictable enough that you don't need a prototype.
A lot of people probably don't know this, but a processor under load uses much more energy than an idle processor. One of my computers uses 100-105 watts when idle, but jumps up to 150-160 watts running a CPU intensive application. If electricity costs 10 cents a kilowatt-hour, that would be an extra $3 a month. If you don't mind donating that much money to your favorite distributed computing project, then go ahead, but know the facts. Actually shutting down your system when not in use will help much more, it only uses a few watts when turned off.
First, I completely agree with you that it does depend a lot on what you're doing. For instance, last I heard _cycle for cycle_ the Pentium is still the king of integer - such as chess. But the crown is different for flops... Raw clock is meaningless and you are highly misguided. Furthermore, MANY operations are multicycle, and I guarantee you they are used on anything mathmatically intense enough to be worth sending out over the network.
Interestingly, you don't have to leave Intel to see this: the Celeron, "vanilla" P4, Xeon and Pentium M have a lot of good differences just within the current Intel x86 line. The Pentium M is awesome, for instance.
But I'll provide just a few examples of how a cycle is NOT a cycle.
Many of these only help you if you compile for that architecture or it does something fancy in the background to compensate - but you could certainly distribute a mixed exe that ran the appropriate binary for the platform.
- First, bitwidth:
64 bit addition requires 1 cycle on a 64 bit cpu, but at least about 3 on a 32 bit. 64 bit multiplication is MUCH worse on a 32bit machine. Similarly, 128 bit vector math is much cheaper on a G4 ("altivec") than on a CPU limited to 64 or 32 bits in that arena.
- registers: A CPU can only actually DO operations on values in registers. If you have more registers you can do much more complicated (longer-chained) operations without having to go to RAM or cache. This is intensely true on highly serial but complicated math and amazingly significant if the operation data actually fits in registers in one CPU and not in another.
- branch prediction and shorter pipeline depth. All other things being equal you want the shortest pipeline possible because it means you have the lowest branch prediction penalty. Coupled with the quality of your branch predictor, this makes a big difference. (Of course, things _aren't_ equal, and longer pipelines make it easier to physically build faster CPUs) Even if branch prediction is meaningless, the pipeline depth is still important.
- parallelization: _All_ modern computers let you run some multiple commands in parallel using multiple CPUs, cores, hyperthreading and/or multiple processing units. Many computers come with two CPUs. Some newer CPUs comes with two cores. Hyperthreading decreases the process switching penalty. Modern CPUs have separate integer and flop units, often more than 1. Clearly the quantity and efficiency of these multiple units would make a big difference.
At an absolute minimum, all of these things help you run the OS without interfering too much with your actual work. But since we're talking about stuff that's already being distributed over a wide network to multiple computers, on some level this work is clearly parallelizeable. Even if your second core can't help on your first 'chunk' you could likely be executing two chunks at nearly the same speed (barring other constraints listed here)
- cache(L1/L2/L3), cache prediction, RAM, bandwidth, chipsets. I'm not going to go into all the details, but suffice to say that the cores need data and code to function and unless your entire process fits in registers, they have to get it from somewhere. The arrangement of memory has a big impact on 1) how much work the CPU has to do to get information and 2) how much the CPU has to wait for that information.
- I/O - I know this is out of our case, but the CPU efficiency of IDE has increased dramatically, but there is still some variance from system to system and driver to driver. Furthermore, different network cards/drivers use significantly different amounts of CPU time to send large amounts of data. This is true even if the speed of execution is not I/O bound - it still takes some main processor clocks and the quantity varies.
Furthermore, this arbitrary driver code and any OS code - for instance - is definitely susceptible to traditional branch prediction, cache hits, etc - even if your main crunching loop did fit in registers.
I'm sure there's more, but I'm done for now.
Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
I mean, when was the last time YOU could fly your own jet?
;)
:)
Umm, never? Hopefully free software can fix this
Seriously, though, why is it that bureaucrats wet themselves at the thought of Russian engineers being out of work, who could be snapped up by terrorists, but unemployed Americans can go fuck themselves?
Even more seriously, though, I've got an idea. Design a generic robot arm that can be used for manufacturing. I'm sure the patent for such a thing has expired. In fact, I'm sure prior art exists
Then we'll see what thousands of people churning out blueprints and prototypes can come up with. If the first plans are for windmills, it could be damn well self-replicating. It's high time that open source moved into meatspace.
"I assumed blithely that there were no elves out there in the darkness"
Yeah I know all that stuff but you missed my point. My point is that his calculation for the number of cycles produced by AMD Athlon64 3400+ is incorrect. And that's still the case. No matter what you say his calculation still uses 3.4GHz instead of 2.2GHz. It is therefore wrong period. Trying to justify it by saying that he mean something that he didn't say is complete BS. An Athlon64 3400+ does not produce 3.4x10^9 cycles per second but 2.2x10^9 cycles per second. So the free number of cycles that he calculated is incorrect. Justifying his vodoo math with the claims you made doesn't make it correct.
Also electrically if you want to get down to it --- A cycle is a cycle is a cycle. It's a pulse of electricity with leading and falling edges that provides timing to a digital circuit. The difference between processors is what they are able to do during a cycle or multiple cycles.
I love that you're not smart enough to notice that the OP started with 3.4 10^10 - which should clearly have been 10^9. So all of his math is off by a factor of 10.
But you're still troll enough to nitpick over the difference between 3 and 2 (a factor of 0.5) even though he clearly stated the units he was using.
I probably shouldn't feed the troll any more than that, but:
To focus more on the original post:
a) 10^18 is clearly the important part of his math. Changing the 2 to a 1 is really not that important to math that demonstrated going from 10^10 to 10^18.
b) he probably didn't want to go look up how many Ghz his Athlon was.
c) OP stated, VERY clearly, that he knew those weren't "real" cycles. Since it was not the important part of his post and it was a reasonable approximation, he left it at that.
the OP said:
"about 3.4 GHz worth of cycles each second"
He said "worth of cycles" not "cycles" which you've chosen to simply ignore. He did not say "worth of P4 cycles" which would have been more specific but was still clearly what he meant - because it's what AMD compares to.
I stipulate, with the support of my gp post that "a cycle" is (between CPU classes) a useless unit of measurement of "worth". Furthermore, in your parent post, you apparently agree with all of my supporting points.
I further stipulate that "a P4 cycle worth of work" is an imprecise unit of measure but much LESS useless than "cycle"
Just in case you think it's appropriate to disregard what his text said and only look at his figure, I'd like to also point out that:
Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot