Skip to content
brycethomas edited this page Nov 6, 2011 · 6 revisions

NOTE: A recent change to the WebSockets protocol in bleeding edge browsers has broken ParaSite for users running Tornado 2.1.1 as the web server (most recent version at time of writing). This will probably be fixed in the next stable release of the Tornado web server (I'm pretty sure it's already fixed in the source.

Warning: ParaSite is very early stage software, so expect to tinker with code if you want to do anything other than run the example.

ParaSite (Parallel Site) is an alpha-stage MapReduce implementation built on open web standards. Para for parallel and Site for website; ParaSite exploits the resources of its host web browsers to get stuff done. This project should not be confused with the Parasite architecture proposed with Java applets in "Parasite: Distributing Processing Using Java Applets", a decade or so ago. I thought I was clever when I came up with the name, but apparently I wasn't the first.

Getting started/running the example

ParaSite requires:

Once you've installed the dependencies above, use git to pull this repository to your machine. Once you've got the repository, cd into the repository directory and run python parasite.py to star the server. Open up two tabs in your modern Web browser of choice (for this preliminary release, must support a recent version of WebSockets). If you can, open up the javascript console of your browser so you can see the console log messages that ParaSite produces. Point both tabs to localhost:8888. After pointing the second tab to this address, the server will start dispatching out files to the two clients and the clients will perform the word count computation and return their results to the server. Note that although the clients each do a combine() step on their local data, the final reduce() takes place on the server (we're waiting on the P2P API in NativeClient before we can implement a client-side reduce()). Once the computation is finished, the server should have output a list of words and their counts (in the console).

Clone this wiki locally