05.01.06
Consumer-level grid computing
I am imagining a world with consumer-level grid computing. For example, imagine a maps server where in order to look at a map of Fargo, ND, you have to also serve those maps to other people who want to see Fargo, ND.
BitTorrent has shown that people are willing to exchange some of their resources for something that they value. BitTorrent uses bandwidth resources and not compute resources, but I don’t see why you couldn’t set up an application that used some compute resources as well.
I think of this not just because I’m working on a class assignment on grid computing, but also because I have a resource-pig of an application, namely my thematic maps of U.S. Census Bureau information.
While I haven’t had a lot of time to devote to improving the performance, I figure that my server can only handle about 2000 users per day. (I’m only getting about 100 users per day, but flatter myself by believing that when the world discovers the maps, it will shoot up.)
My husband observes that rendering Wikipedia pages into HTML is another data- and compute-intensive job that could be distributed. What if looking at at some Wikipedia pages meant that you downloaded the raw format, rendered the page as HTML, and then served the HTML to other people who wanted to see it?
It might not be practical for Wikipedia: suppose I want to read about geoducks, and Bob is serving that Wikipedia page. Wikipedia has to send me enough information for me to find Bob. It might be that the ratio between the amount of work Wikipedia saves by having Bob serve it just isn’t worth the extra overhead to run a distributed application
Another possibility would be render farms for amateur animated movies. The more cycles you donate, the more frames you render, and the more of the film you get to see!
I have to believe that someday we will see distributed consumer applications that use both computing and bandwidth resources.