I just listened to a recent Floss Weekly Podcast about BOINC, an open source middleware system from Berkeley for Volunteer Computing. You’ve probably heard of Seti@Home or Folding@Home as well as some of the many other collaborative projects out there. This got me thinking about how Volunteer Computing and Cloud Computing relate to one another.
Certainly, these are not technically the same. Volunteer Computing as it’s called refers to distributed processing power over many disparate systems globally using the willingness of others to donate their computers CPU cycles to a larger project. I suppose you could also call it Collaborative Computing. The Cloud, on the other hand, euphemistically refers to the Internet; more specifically to the concept of running an application somewhere out there in the Internet where you as the user are utilizing an industry standard Web-browser to access the application. The application in the cloud may be hosted on a single server or more likely, as with SalesForce.com, Google Applications, Amazon S3 and others, the application is distributed over multiple data centers providing redundancy and improved performance.
In my opinion, though, where the two meet is in the idea of distributing computing. Both technologies utilize the power of multiple systems, geographically distributed, and yet connected through the power of the Internet. In Volunteer computing there is a single goal – to collaboratively help out an important scientific project by donating your computers processing capability. I’ll call this many-to-one. In Cloud Computing there is a single goal too – to build a distributed application to provide a service to their clients. I’ll call this one-to-many.
If my father were here he’d say that Cloud and Volunteer Computing are the same things he ran on an old IBM System 36 back in the day; with 4kb of RAM and tape drives, up hill, in the snow. And, he’s somewhat right. The computer world has gone from single huge systems providing CPU processing power to multiple users, to millions of standalone systems, to globally networked systems providing collaborative CPU processing to multiple users or towards a single cause.
I suspect we’ll see more and more of the new Netbooks that are becoming popular. These are designed to use Cloud Computing. No Microsoft Office, just Google Documents and GMail.
The big question: As the Cloud grows and our local machines run less local software what happens when the Internet is down? Google Gears are Adobe AIR are a step towards dealing with this potential problem.
On my friend’s blog at Pay4Rides.com, Mat is building a case to harness the power of existing traffic flow to reduce carbon output and reliance on foreign fuels. To me, this sounds a bit similar to Volunteer Computing . In computing, it’s harnessing the existing computers and Internet to power a project. For Pay4Rides, it’s using the existing traffic (as in “I’m driving to work already”) to give rides to others going the same way or the same place. Now, whether Volunteer Computing actually uses more energy because CPU’s that were otherwise idle are now pounding away on complex calculations is a totally different discussion.
Let me know what you think.