This short post explains how websites like Wikipedia could help solve important computational problems by harnessing the computational power of their readers' browsers.
Many problems in biology, medicine, physics and other sciences remain unsolved because they require enormous computational resources. Several volunteer computing projects (e.g., BOINC) currently allow people to donate some of the computing power of their personal computers, in order to enable scientific research that could not be done otherwise. With volunteer computing, THOUSANDS of personal computers all around the world can work simultaneously on a scientific research project. I argue that much more than this could easily be done and that MILLIONS of personal computers could simultaneously be used to solve important scientific problems. How?
It is very simple. Take one of the world's most popular websites, Wikipedia. It receives hundreds of millions of visits every day. While Wikipedia's visitors read Wikepedia's entries, the CPUs of their computers are almost idle. Imagine if they could be used to solve small chunks of a computational problem instead. Is that so difficult to implement? I do not think so. It would suffice to add a piece of Javascript code to every Wikipedia page. When a visitor starts reading a page, the execution of the code automatically starts and the code runs (sending back results to a server at regular time intervals) until the reader leaves the page. As Javascript is client-side, all the computations are executed by the readers' browser and only the results of the computation need to be sent back to the server. No-profit entities like Wikipedia could easily do something like this and help to solve, for instance, computational problems in cancer research (e.g., Help Conquer Cancer). Of course, many other large websites could do the same.
Quite unexpectedly, this short post made the front page of Slashdot immediately after its publication and received a lot of attention. I summarize below some of the comments that people made on this idea.
Post by Marco Taboga, hosted by Statlect.com.
This is a brief summary of the main comments made on this page, on Slashdot and on Reddit.
Javascript is probably not a good technology to be used for browser-based distributed computing on large websites. However, it seems that somebody has already worked on similar ideas and has devised better technologies (e.g.: Plura Processing).
Many people are concerned that their personal computers could be unduly exploited without their explicit consent. Of course, one should find mechanisms to let users explicitly approve their participation in large-scale distributed computing projects.
Modern computers have higher electricity consumption when their CPUs are used more intensively. Therefore, donating CPU cycles entails a small cost for donors.
Most of the learning materials found on this website are now available in a traditional textbook format.