How did we get from there to here? The history of computing is marked by ages. In each age, the basic design of how we work with computers changes. Many people probably think we’re in the brave new Internet age at this time, but considering the nature of computing, we’re likely just at an intermediary stage. We’re just now peeking into the next age — the age of the truly distributed computing system —the coming of the grid.
When it comes to fighting over contentious XML standards, it usually comes down to trench warfare between an IBM+MSFT alliance versus SUNW, it seems. MSFT isn’t the only one who plays the lock-in game (e.g. VoiceXML vs. SALT).
Ok, I want to point something out here.
MULTICS, and yes I am talking about ye olde precursor to the modern Unices, was designed specifically as a grid system. Ie One or more large servers were to provide all the grunt and workstations were intended to do very little but display the results, thereby making processing time a service like the…tada…electricity grid. The idea being that you could plug in your workstation anywhere and get access to healthy amounts of computing power. This idea was born out of the computer economics of the time. Back in ye olden days you needed a very large, and very expensive, server to run a complex program in a decent timeframe.
Back to the present. Computing is going BACK to the idea of a grid system, it isn’t anything new. The only difference is that this time around the network capability and processing power are available to make it work properly.
The major difference is the distributed nature of the grid. No longer is the power restricted to a few big machines – the real grid will evolve in a similar fashion to the internet – an intergrid if you will. It will be a network of resources, and despite all the press, will end up not being controlled by the likes of IBM.
Each machine (including yours perhaps) will make available a “sandbox” (kind of like a JVM) for other intergrid users use. You would set how much of your local resources (CPU, RAM etc.) to donate to the grid (maybe 50% of your idle CPU cycles and 30% of your unused RAM).
Software written to take advantage of the intergrid will split its tasks down into as many small independant interthreads as optimal/possible. These threads are then delivered via the internet onto the intergrid for processing, and return back to your machine completed.
Imagine if you had 1000 MP3’s you wanted to downsample. The whole batch could be processed in seconds with such a system. A few thousand interthreads go to work over the 100 gigabit network and come back and recollate their data parts.
Of course the “flaw” in that is that people will need an always on connection, and there needs to be enough people to make it worthwhile. Maybe in countries were broadband has greater market penetration.
One interesting thing about all this is that it could mean a fundemental shift in the programming languages we use. Current programming languages are based on either the Von-Neumann computing model (various operations on finite array of numbers) or the lambda calculus (everything is a function). These models support concurrency, but in an ad-hoc way through threads. This ad-hoc model requires the programmer to make any concurrency painfully explicit and is hard to scale to 100 nodes, much less thousands.
To get the most power out of a massively distributed system, programming languages need to evolve to a more concurrent model. We are already seeing some languages based on ad-hoc concurreny, like Mozart/Oz: http://www.mozart-oz.org/
Going further, you could see languages based on a concurrent calculus, like the pi calculus: http://www.wisdom.weizmann.ac.il/~aviv/pi.htm
I think the internet had the same problem when it started to explode. Not all countries had the telephone system either capable, or at an affordable price for internet to be useful. The richer countries forged the way, and still do, but poorer countries find ways to make use.
You’re making a fairly huge assumption here, in that people actually WANT someone else using their processor’s idle time. Personally if my processor is idling then it’s idling for a damn good reason. There are a few good projects out there, whose end results will benefit all people, that I’m happy to donate processor time to (Eg SETI), but there’s no chance in hell I’m would give up processor time so someone can use it for their personal computing.
“Personally if my processor is idling then it’s idling for a damn good reason. There are a few good projects out there, whose end results will benefit all people, that I’m happy to donate processor time to (Eg SETI), but there’s no chance in hell I’m would give up processor time so someone can use it for their personal computing.”
I agree. The whole point of the microcomputer is that you can own a computer for your exclusive use, and use it independently of servers and sysadmins.
OTOH for computers in universities or large businesses, which belong to the organisation, a grid does make sense.
Society works on the principle that we accomplish more together than we can in isolation. A universal grid is no different. What is is that so frightens you about sharing?
“”Society works on the principle that we accomplish more together than we can in isolation.””
Counter-argument:
Every technological advancement made by mankind boils down to a single individual making a breakthrough which is then expanded on by others. Individuality is what accomplishes advancement, the collective simply provides the manpower to enact advancement. One person CAN accomplish more in isolation, it just so happens that their accomplishments may not be viewed by the collective as having merit unless those accomplishments are worth something to the collective rather than the individual.
“”What is is that so frightens you about sharing?””
Frightened? Nope, I just don’t wish to share.
Why do you think not wanting to share MY processor time is a display of fear?
Is it some abhorrence of the concept of personal possession that makes you feel we need to share more?
And if we are going to share then who decides which person gets what? If there’s enough food for one person and three people to feed then who gets to eat? Or should all three starve to death to show solidarity?
In the same way who gets to decide how my excess processor time is spent on a grid system? Me? You? Or the more likely prospect of nameless, faceless forces that would seek to apportion my excess processor time in a manner that best suits their own ends.
If you wish to play pawn to someone else’s whims then that is your choice. Personally I refuse to hand over my personal possession (And my processor time IS a personal possession) to be redistributed according to the dictates of whoever controls the grid.
Even the Borg had a queen :>.
always on connection will be here. just look at the statistics for the penetration of fixed teleco dial lines in most first world countries: it’s about 99% – that’s 99% of businesses and households. it will take years, but eventually 99% of us will have fixed information pipes into our houses.
remember also that for a business: any business that doesn’t have an always on internet connection today is at a serious disadvantage: so you could say that the always on at 99% already applies to businesses.
businesses will be the big first uses of grid computing. in fact, at my work we already have these sorts of tools happening. recently we purchased “incredibuild” for our MSVC development environment: with about 20-30 clients, any individual build will harness free resources on the other clients. the result is dramatic, and a good indication of how the technology is going to work: basically the back-end of your applications will plug into available computing power and services. if you need more, just buy rackmounts and license new application servers. if you need a lot, then purchase space out on the net. for some companies, they will be able to claw money back by selling computing power back out into the net. i mean, if i’m a uk business and my application servers and data pipes are idle over night, why not rent it back out to the market ?
the area where I see a lot of potential is engineering and computationally intensive applications. for example, ever tried routing a multi-layer PCB ? even with a high spec workstation, it’s not unknown to leave the routing running for a day or two. for many businesses, being able to backend this to the net, and pay a sum to have the routing completed in 1/2 hr rather than 24hrs is going to make sense. there are a lot of opportunities here.
for the home user, grid computing will not be a significant thing in that sense; but ever marching forward of integration will be. for example, applications that automatically upgrade themselves, or automatically integrate with backended plugins, etc.
I don’t think that you have to worry: I’m sure that you won’t have to give up control of your processor time anywhere soon. A lot of grid computing for the masses is really going to be asymetric: more about you plugging into the grid rather than the grid plugging into you.
P2P is already a form of the grid: look at something like eDonkey – data is massively replicated, and obtaining a file involves a splatter grab from all over the place. Your client is acting as both server and client – there’s no real difference, especially when you are fetching from a server and a client is fetching from you at the same time: i.e. the idea of “store and forward” is removed, it’s just temporal rearrangement of data streams.
Hi Don, nice to see you here…;-)
We agree with you.
Nice article — grids may be great for cows and work well for herds, but not the folks that hang out here. Educators will see a expansive global network that can be harnessed for the latest project/funding. IBM will commercially benefit and so will the mainstream industry. The client will be served to the grid. OK, never mind. Generally for the regular user things will be better. Happy days! Cool. The world does get better. We like that. Anyway…
BUT, big things happen one person at a time. Grids are for kids. There is an edge to a knife. Fires start with a spark. Thinking different is fine, but thinking better is better and to be in front, well, you have to lead or at least head out on your own.
Better to grab the bull by the horns and do it yourself…;-)
R&B
Anyone ever see the episode of Stargate SG-1 where the “Avenger” program is uploaded into the Stargate grid? I could see some litle kid writing something like that for your “wonderful” Grid…and then what? I’ll tell you: everyone’s systems would be screwed over because they’d be updated to the “new” version even though it is a viral infection! The only way to fix that would be to return to a massive grid-wide back-up which would cause major problems for the average user.
I don’t have a problem with teh grid and think it would actually make things(like P2P) a lot easier to accomplish. but, I do not want to “lend out” my processor power that I spent *Good money* to get! Now, plugining into teh network and using some extra power from a huge server wouldn’t be such a bad thing…
“”P2P is already a form of the grid: look at something like eDonkey – data is massively replicated, and obtaining a file involves a splatter grab from all over the place. Your client is acting as both server and client – there’s no real difference, especially when you are fetching from a server and a client is fetching from you at the same time: i.e. the idea of “store and forward” is removed, it’s just temporal rearrangement of data streams. “”
P2P file sharing is one thing, actively processing data is something else entirely.
I don’t think anyone would mind if their excess was used for something good (Eg Cure for cancer), but would you be as happy for your CPU time to be used for biological warfare simulations? Could you prevent it?
I tend to agree with some of the others who posted. This isn’t going to be an all-encompassing technology like the net. I see a solid argument for supply of processing power (Analogous to supply of bandwidth/server space), but there’s just no way anyone should ever aim to make it universal because the opportunity for misuse is just so high.
*Err sticks a “Private Property sign” on his computer :>.
You are quite right about p2p programs like eDonkey and Kazaa – they are essentially filesystem grids. A lot of people participate and give up a little of their Personal Computer filesystem storage for the benefits of being part of that grid system. CPU time is not that much different really. If you do not want to tap into the power that can come of being part of such a massive CPU grid, then fine, keep using your single processor and wasting most of its power (yes that includes SETI – all those cycles you burned so far have found nothing, nada, naught, zip). When you come to convert a movie to another format and have to wait several hours then fine. Me, I would like to dish it out onto the grid and have the whole job done in a couple of minutes. That is worth giving some of my CPU time for.
CPU time is distinctly different, in that for a grid system to work properly the connected computers aren’t aware of what they are processing, merely the fact that they are processing something.
To take your example.
I (And hopefully everyone else on this board) would absolutely, flat out, refuse to download a movie with paedophilic content. Such movies will never be stored on my computer, therefore I can be assured (Outside of someone hacking my system) that I will never take part in the sharing of such movies. I have control over the content I am willing to share.
Now with this grid system someone else could use MY processing time to convert a movie with such content into a different format for their twisted viewing pleasure. Since all that is happening is data processing there is no way for my computer to differentiate between the latest Disney flick and some sordid piece of video nastiness. So by sharing processor time I would lose control of what I was actually sharing, bringing with it the risk that MY processor time was being used for things I would categorically oppose.
Sharing content leaves you in control of the content you share, sharing processor time does not. I prefer to maintain control over my system’s content.
Where have you been in the last fifty years. A single individual can accomplish very little these days. Most scientific advancements are made by huge teams of researchers (note the organization of INRIA or CERN). An individual can still make a difference in largely theoretical fields, but even they can only do so because they are “connected” to the vast amount of thought and literature published by their collegues.
If we would follow this grid-idea in all its consequences it
means anyone could access your cpu, when it is idling, to
perform calculation-tasks for them. To what extent would
this be controllable by its owner and how can one be assured
somebody is not using the generosity to fill up the machine
with all sorts of viruses, trojan horses and assorted pollutants.
Attemps to come to ‘trustworthy computing’ has currently
lead not to all too encouraging results.
AvS
Recently there was news article or post about Cambridge research labs and their virtual x86 platform that could host multiple operating systems. This is the kind of thing that supports grid computing: very strong isolation between VM’s so that if a rouge process does damage, then it is contained.
Just remember that OS’s are still imature IMHO, in that VM’s are the most important thing we need for good security: i.e. a rouge application is fully contained within a process and file system space so cannot damage other parts of your computer. Effectively: very strong jails. Unfortunately this just doesn’t happen effectively at the moment. We’ve still got some work to do before we can be really safe in a connected environment. A few more years and all of our good work will help.
Regarding bad “content”, unfortunately this is a difficult issue and problem not yet resolved.
>a rouge application is fully contained within a process and file system space so >cannot damage other parts of your computer.
-This implies of course that every OS participating in the grid
must be multithreading as well as pre-empative multitasking.
At least as far I can see.
AvS
“”Where have you been in the last fifty years. A single individual can accomplish very little these days. Most scientific advancements are made by huge teams of researchers (note the organization of INRIA or CERN). An individual can still make a difference in largely theoretical fields, but even they can only do so because they are “connected” to the vast amount of thought and literature published by their collegues.””
No. I disagree.
All innovation happens at the individual level. Individuals may be working together, towards a common goal, but breakthroughs are made by individuals and then shared with the group. A group doesn’t suddenly figure out how to solve a problem in unison, one member solves the problem and shares their method with the group. Innovation happens in exactly the same way.
CERN/INRIA/Any other think tank don’t break from this pattern. They’re based on the idea that if you put enough knowledgable people in the same place at the same time and let them bounce ideas off one another then eventually one of them will link disparate pieces of information together and come up with something new.
This might go some way towards explaining why the computer industry has effectively been standing still for the past decade, producing very little that is innovative, and rather settling for doing the same old tasks in prettier and faster ways. Too much communal thinking (And that includes imititation) and not enough individualism.
Where is the next killer app? I guarantee it won’t be designed by committee.
Sharing content leaves you in control of the content you share, sharing processor time does not. I prefer to maintain control over my system’s content.
That’s an interesting exercise in moral distancing.
Person A has a clean P2P box. A is only sharing a video of A’s holiday and a few home recorded songs. But what if A’s CPU is acting as part of a relay of Peers that allows B to aquire illegal content held by C. Isn’t A guilty by participating in the network?
What if your shared content (political information for example) is illegal in another country from where someone downloads it. Are you paricipating in a criminal activity?
Consider mobile phones. By paying my monthly subscriber fee, I’m supporting a network who cannot deny that their network is used by criminals to plan illegal activities. Merely from the proportion of the population using mobiles, you can assume that to be the case.
Can I really distinguish between financially supporting illegal content distrubtion, and contributing non finiancial resources (such as CPU cycles).
Woudn’t most resonable people say that in all these cases there is no guilty activity since, merely by participating in a network, the subject is not intending to support illegal activities by others?
Supporting miscreant behaviour in these very indirect ways is the collateral damage of freedom. Wouldn’t that apply to sharing your CPU too?
The type of grid being discussed in the article is one in which CPU cycles are pooled across the grid. Sure, P2P is a form of grid computing but one in which primarily storage, not cycles, are shared.
The problem in implementing something like an “intergrid” is a motivational one. If we consider desktop machines, most people have more CPU cycles than they know what to do with most of the time, why would then need a grid resource?
In almost all circumstances where users need faster computing on their desktop, they actually need of faster bandwidth, not more cycles.
If they can’t get the bandwidth they need out of the 30cm connects in their computer, they are unlikely to get it from a remote intergrid resource, or even a LAN resource, no matter how many MIPS it can offer.
The application area of an intergrid would therefore be where a device can generate a small amount of data that requires a large amount of processing in a short space of time.
This switches the focus away from the unlikely P2P desktop sharing scenarios cited above towards areas such as visual cue interpretation and speech command recognition in small CPU devices such as mobile phones and consumer appliances.
The bandwidth in a mobile phone is obviously adequate for real time transmission, while the CPU is inadequate for a real time response to a complex spoken command – that’s where you need a grid and that would be the first area where I could imagine one being applied.
Watch the telcos.
Your objection makes little sense. Do you support everything your government does? Unless you do, then your tax dollars (much more important to you than your processor cycles, I hope) are being used for purposes that you probably strongly object to.
“”Do you support everything your government does?””
Excellent example, as it parallels the grid argument.
Aside from once every 4-5 years government policy operates without any direct input from me whatsoever. There is nothing I can do to chance their policy (Aside from lobbying, and I’m not that rich :>) so I’m stuck with whatever they decide to do. This is because I have no control whatsoever over the government.
Back to the topic. I HAVE control over my computer, the data stored on it, and the processing it does. The grid system asks me to hand over some of that control to a third party that will decide how to use a portion of my processing time.
Government wouldn’t work if they had to ask my permission on everything (Emperor Err, has a nice ring to it :>). However my computer works just fine with me asserting dictatorial control over it. The grid system asks me not only to share my processing power, but also share (To some extent) control of what is done with that processing power. This requires an element of trust which I simply am not prepared to supply, in exactly the same way I haven’t trusted the idea of government (Any government) or its ancillaries for a long time.
<snip>
Long rant about having our lives controlled by dipshits that won a popularity contest.
</snip>