Collaborative Map-Reduce in the browser
igvita.com
igvita.com
The BOINC project's done it, they've seen 1million+ computers. And they even have an installation barrier which is different than what you are suggesting (their software is robust and easy to install but you still have to do it).
One thing BOINC and BOINC projects do well is establish non-monetary incentives, whether it be competitions, fancy graphs, etc. That's something to solve, not sure enlisting just your social network (manually, with an URL) is going to be enough to cut it if you want thousands of participants (unless you are particularly "influential" I guess).
Or maybe this is something a legion of mechanical turkers would be interested in?
Google Gears is also pretty good way to do this your self since there's a DB and a background process - although full apps in the client changes the security model - as with google native client - http://code.google.com/contests/nativeclient-security/
Nice post. Oh, and I like the rainbow butts iconography. :)
http://www.pluraprocessing.com
Launched on HN (where else) a few months ago:
- Buy tons of those fancy interactive visual advertisements, embed the worker into them and perform mapreduce jobs in the browsers of unsuspecting users
- Run some of the analytic/batch processing related to a popular social network on CPUs of your customers.
- Have a popular site? Sell CPUs of its audience just like one sells impressions via AdSense.
Had this idea a few years back with a business model that paid publishers for cpu cycles gathered from a javascript or flash widget. We hoped to then sell this service to data-intensive industries. Decided it wasn't feasible.
We need to consider cpu cycles gained from this regime vs. bandwidth and cpu cycles lost from the hundreds of web, queue, data servers needed to run this model. IMO it is unlikely that this model will pay off once you consider things like network latency, and trade-offs like job size (higher job size is better) vs. job completion probability (lower job size is better).
Even if the potential for viability were there, it isn't clear that there is a market for something like this. Large scale computing challenges obviously exist, and a lot of people are making money with solutions like cloud computing, but these problems typically involve proprietary data sets, using proprietary or industry standard (good 'ol apps like MySQL) software. Chopping up your sensitive data and sending it en masse to the public to be processed on javascript instead of C++ doesn't exactly fit client needs.
That doesn't even get in to verifying results from an untrusted client.
Here's my half-implemented proof of concept from a while back that runs on AppEngine: http://github.com/markchadwick/emarer/tree/master
Slightly different implementation, but the same idea (which I think is a very cool idea!).
As far as centralized servers & data storage.. I didn't cover this in the post, but I've been thinking a lot about using bittorrent to address this, and I think it's totally feasible. All you need is several thousand seed servers and you'll have a worldwide file system / job tracking queue. ;)
Most startups and small scale companies that would see the value in leveraging a system like this simply don't have the right processing profile which would make something like this worth their while. I'm sure if you graphed CPU time per byte of data you'd find a sweet spot where a service like this would speed up jobs rather than slowing them down.
As it happens, most companies that have a high CPU time per byte ratio are either financial firms or pharma. Most of whom not only have their own infrastructure, but would rather close up shop than see their proprietary code out in the wild for competitors to analyze.
And there are already plenty of clients out there for running fourier transforms on possible seti signals.