Sunday, August 22, 2004

The future is distributed.

Why did I get interested?
Last week while I was sitting in the college library reading a Linux magazine, I saw an article on Distributed Computing. Now this semester there was a course on Distributed Computing being offered at college and we were thinking whether we should take up that course or not. So the article was sure to be useful. Before this I had only one view of Distributed Computing and that was a network based system where you could share. Share hard drives, share memory or share processes and threads between CPUs. The best example is a distributed OS or a LAN game like Quake or UT. But after reading the article I came to know about a different side of Distributed Computing – Grid Computing.

Grid Computing is basically an extension of the thin-client system concept. All the processing power and storage is kept at one place and individuals have thin-clients (only basic I/O devices) to access the computing power. Every individual has to login to the mainframe to access any data or application. All the applications are executed on the mainframe and results are displayed onto the individual’s display.

What is the future?
After reading the article, listening to my friend sitting alongside and reading a few articles on the internet I have started to believe that this might well be the future of computing. I believe that in future (don’t ask me how many years from now, because nobody knows) the concept of computing will be somewhat similar to the concept of electricity. The world will be divided into computing blocks of the size of small towns. Each town will have a Computing Distribution Grid and a Data Distribution Grid (something like power distribution grid) which will distribute computing. The core of this system will be a huge cluster of supercomputers which will generate CPU cycles in ExaFlops (1018) and have ExaExa Bytes of storage. There will be a huge and lightening fast network (most probably wireless) that’ll connect this computing powerhouse to home/office computers and other intelligent electronic devices (I say intelligent devices because I believe in near future almost all the electronic devices will become networked and intelligent. So computing will be more than the computer itself.). Big organizations might have their own grids powering all intelligent devices. All data will be stored on the Data Grid (obviously encrypted) and all applications will run on the Grid. A user will only have to buy I/O devices and some form of personal storage like CD/DVDs and connect his/her client to the Grid.

Why the future is better?
The Grid Computing model will be, in many ways, better than the current generation of computers.

  • First and foremost, you’ll pay only for what you use. In the present computing model most of the users end up wasting a lot of money on computing resources. I believe there are a very few people in this world who use there computers to full capability. A normal user generally buys a monster machine for the sole purpose of surfing the web or some word processing. Even ardent gamers waste lots of computing resources because they don’t play games 24 hrs daily. In the Grid Computing model all users will be billed according to storage and CPU clock cycles. Storage will be billed in data-time units for i.e. you’ll pay $ N for using X GB space in a month. X can either be the mean usage, the maximum usage or the median usage. The billing system is easier for CPU/GPU cycles as you’ll be charged $ N for each CPU clock cycle you have used. We might also see a Prepaid model of billing which will allow users a fixed storage space a fixed clock cycles! Either prepaid or postpaid I am sure this will be way cheaper than the current model.
  • Secondly, you’ll no longer need to worry about hardware upgrades. At present, every time there is a new game in the market you have to think about upgrades. The least frequently upgraded parts of a normal setup are I/O devices which will be the only parts required to upgrade in the Grid Computing model. All the CPU and storage upgrades will be done at the Grid itself.
  • Finally, this new model of computing will eradicate the concept of carrying data on USB drives/CDs or, for that matter, on any portable media. Just think, all you need to transfer that all important presentation or that college project is to login to your Grid Account from your college/office client. Yes, that’s all; you can use your computer just like you do at home. Now this is something I call mobile computing!
What might be the problems?
But like anything else in the world this model is sure to have some problems (and their solutions too:-))
  • The first problem in my mind is that implementation of this model will require a radical change in current infrastructure. The complete business model of marketing/selling IT components to individuals will change. There will be obvious questions like - "Why should we change when everything is going fine?" and "What if it fails?". Unless all IT bigwigs work together, it'll be almost impossible to bring this change. It’ll be good if some big organization starts testing this model at small scale. They can cluster there current army of computers and create a miniature Grid. Once the profits start flowing, other IT organization will start moving towards this.
  • Second problem is the dreaded problem of Security. All data at one place can cause havoc if some troublemaker gets the key. But I presume that by the time such advanced networking and clustering technology come into existence, the security technologies will have stepped to the next level. A human being will be recognized by his/her face, voice, fingerprints besides old trusted technologies like passwords and smartcards. So, in all probability Security won’t be a problem.
Is it really feasible?
Sounds revolutionary, but so did AI. We all know what happened; we are yet to see robots that can clean our bathrooms. So is this just another dream of some crazy scientist. No, I don’t think so. The problem with the vision of AI was that we were trying to create something which was as big a mystery as UFOs (i.e. the human brain). At the time research on AI started we neither had the required processing power nor the knowledge of the subject (We have most of that now but that’s a different topic). Whereas, Grid Computing is based on two basic technologies, networking and clustering, that exist even today. The only problem is to scale them to higher levels. This is why; I have a firm belief that Grid Computing is the future of computing. Whether it’s good or bad is something we’ll know as we move ahead into the future.

Meanwhile, I must tell you that I did not take up the course on Distributed Computing. The sole reason was that we were required to have 100% attendance to pass the course :-)

11 comments:

Anonymous said...

chirag, It was really great to read u r article,and I was amazed to see how well u were able to understand the concept. Waiting for more such articles.Best of luck.
-- Vikrant

Anonymous said...

Chirag u have done some great thinking on the lines of which each and everyone of us should start thinking from now.I must congratulate u for this and I repent for not reading it earlier.
--Gaurav

Anonymous said...

Have you understood the difference between grid computing and cluster computing, mobile computing, pervasive computing, ubiquitos computing ... many of these terms are synonyms.

Is SETI@home grid computing ?

Try to find the answer to these questions.

Good thinking, keep it up ..

Anonymous said...

A gr8 vision man, but having is not enough.. spread it and let the idea reach those hands where it can truly be achieved.

Anonymous said...

Currently, Grid is Shared Service.

And, SETI@home is a kind of grid computing.

Anonymous said...

Hi Mr. Chirag Gupta,
Read ur posting on distributed computing. Truly speaking i was mad searching what exactly is distributed computing, as am a recruter it is necessary to know the what requirement i am fulfilling. Thank you very much.
Here is my mail ID (harsha.hr@gmail.com)if u post any other topic plz shoot a link to me. and if you are looking for a change in your career and interseted to work at silicon valley of India (Bangalore) for a well known telecom company for its services at Europe, US and Asia, reply with your updated resume. We need an specialist on distributed computing. Any reference you have, we welcome. Thank you again for sharing your knowledge.

Anonymous said...

Wow... I'm late to THIS thread, lol.

In spite of the many praises by other visitors, I'm going to have to wholeheartedly disagree as to the "benefits" of this model.

Firstly, your grasp of the issue of security is seriously lacking. (No offense!) You've obviously not had much dealings with hackers, crackers, phreakers, and the like. Bottom line, if it has a door, it can be breached. No matter how sophistocated the lock becomes, they are always inevitably broken. As a software developer, I've done a ton of research on information security, both at the code and network levels. I hate to say it, but the fact of the matter is that the concept of security is really about risk management... consider how long people have been fighting against viruses, crackers, hijackers, etc. The "good guys" fix a security problem and raise the bar. Then the "bad guys" come and eventually scale the wall. Then the "good guys" fix that security problem and raise the bar again, etc., ad infinitum. The point is simply that if you provide ANY means to access the information (so that legitimate users may do so, which is kind of the point) then that SAME means can be used by a malicious person. This is an inevitability. Once the breach occurs... it's TOO LATE. Consider this analogy: would we put all the world's gold, money, diamonds, valuable things, in ONE central bank? If you beef up the security enough, IS IT enough? It sure is less to maintain, after all, so it sounds good in theory. But it only takes ONE group of sophistocated robbers armed to the teeth to penetrate the defenses ONE time and it's GAME OVER. So, the security issue will always exist, and grid computing as a utility (which is an excellent analagy, btw!), which by definition MUST have yet even more doors, provides even more potential for risk. Responsible, security-centered computing considers all potential risks, and balances accessibility with risk. The model you discuss pushes things far too heavily on the risk side.

Now, the other issues... it actually won't be cheaper... not in the long run. For some folks, you're right, it may yet be. Take my mother for example... she's an email-and-web-only kinda gal, and she does NOT need the next gen multicore system, and so if she bought one, she'd get a raised eyebrow from me (less inheritence for me, right? not that's I'm getting anything anyhow, lol) However, when you commoditize something like computing at THAT fine of a level (pay per cycle, etc.), then people will have a regular monthly bill, just like they do with cable. Convenient, on-demand, low mainteance, sounds great. (Hey, anything to not have to spend an hour reading a product manual, right?) However, in case no one else took notice, 10 years ago, cable was about $15 a month. Now it (or sattelite) is about $50 a month. For what amounts to the same level of service. (It costs even more to get the latest and greatest features, like high-def, on-demand, etc.) If you pay $50 a month for 60 years (assuming one starts paying at 20 years of age, and goes til 80 years old), then you've paid out $36,000 for TV content!! We do this unblinkingly... but if think about it, that's the equivalent to a library of about 2,000 movies that YOU OWN and can pass on to friends and family. Now apply this to computing... the cost in the start-up phase of such a service may seem to be beneficial, but whose to keep the pricing down? Such a service could potentially ultimately offer users less choices (as their choices are governed by the service provider), particularly in respect to finances, where they may get stuck paying unnecessarily high bills that they can't control the pricing of. Further, what happens a friend or family member runs up one's bill (just as today one might "borrow" a cell phone) and the person can't pay the bill? Then their available computing suddenly ceases.... no writing school papers, playing games, sending email... complete and total shutdown. Do not pass GO, do not collect $200.

A note on reliability... for those of you into stereos, would you rather have a component system, or an all-in-one system? You know the answer to that question, but for those of you that don't, component systems tend to be (a) more reliable, since if one part breaks, the rest works while you replace just one part, and (b) you have a great deal more flexibility in choices, by mixing components from various manufacturers. Applying that to the concept of computing as a utility, if one critical thing breaks, you're out of luck entirely. It's TOO centralized. If the distribution node that you normally access dies, you must wait to do ANYTHING useful technologically. (Either that, or go visit someone, so you can access the grid from their place.) The power may as well have gone out, with no spare generator or battery backup. Granted this particular concept is not an unsurmountable issue, but it does demonstrate that you've gone "far too light" on the potential pitfalls. Even I've barely even touched on the myriads of issues that could crop up...

Finally, HORSEPOWER... the issue of cost is central here. Did you know that you can build an Intel based server with up to 256 processors?? Amazing, I know. Know the cost? Only about 1 million bucks. (Chump change, right? lol) 256 full-fledged desktop machines with total equivalent horsepower will cost you about $200,000, a mere fifth of such a magnificent beast, with no processing bottlenecks during heavy load times. (This assumes of course that a GOOD design will account for the possibility of near-full utilization by everyone at the same time... something that is done too seldomly in many different engineering fields, but is a good practice nonetheless.) What about other server dynamos? They also cost significantly more than distributed horsepower, some quite significantly more. Sure, the customer doesn't have to pay that out of pocket... but they'll pay for it in the back-end, when the service provider starts to need to pay off that rather large debt. The economics of this model is ultimately not in favor of the end user. To keep the pricing down, they will have to LIMIT available horsepower, and that's not something I am personally willing to live with.

While grid computing definitely has its place in our future, especially for specific types of applications, I truly, TRULY hope it never goes as far as you are projecting. It would be just another way for average to poor folks to pay more than they can afford for wwhat they consider to be "essential services", just to line some tycoon's pockets even further. (never forget human GREED as a factor, it's ALWAYS in play!)

Anonymous said...

Wow Rob!
That was like post mortem of my article!

But believe you me i am highly pleased tht you spent time reading my immature article and more time (i guess) writing that huge (both by length and intellect) comment.

You really forced me into thinking that in wrong hands this could be dangerous. In the same breath i must say tht i doubt any hand big enough to manage this will be god.

But still this might not be as dangerous as you think. At present a huge % of population is highly dependent on mobile phones. According to you mobile service providers will keep raising the bills and we'll continue paying as we pay our cable/satellite bills.
I don't know about USA or other countries but in India situation is very different. What is preventing such a situation is competition. Even after years of mobile revolution, mobile service providers are competing to provide better services at lower rates to tap bigger market share.

Think like tht about my idea too. Each are has 3-4 providers and you are free to subscribe any. This will ensure competition which will hopefully keep the costs down.

As far as security is concerned, i am no expert but i can certainly say that this issue is as big on a desktop or a server as it will be in a grid environment. If you disagree I agree with you coz as I said I am no expert :-)

And I hope you read this comment and please giv me your email id or website so tht i may contact you. I am really very impressed!

Anonymous said...

I think it is time for me to start my own blog. I have been doing a lot of research on how people on using and setting up blogs in blogger. I really enjoyed looking at your work.

Thanks again,
amd benchmark cpu

Anonymous said...

Wow ! it's a great.

Anonymous said...

Wow. Your article just blew my mind!! It's simply awesome.. Simple and well explained.. I loved it.. I hope as the time goes by the we can really work on this thing so it becomes a reality... Ii'll like to link your article to my blog afotey.blogspot.com .. It's really cool