
Hi, I'm David and I need your help!
I am currently in my final year studying Computer Systems and Networking at Plymouth's School of Computing, Communications and Electronics. As with many final years it's dissertation time, Ouch!
My project is to create a program which can run in the background of a web site while a user is browsing the site. During this time the program would use the idle processing power of the personal computer to process data which is sent to it by a server. This would allow for data to be processed by millions of personal computers from around the world; effectively creating a super computer which enables us to solve problems faster.
One current example of this is World Community Grid which aims to benefit humanity with the results collected. It uses a large community of personal computers to calculate results for problems such as:
I intend to do the same but distribute my program though a web browser and use idle processing power while a user browses a site rather then when the computer is stationary. In order for this project to succeed I need to closely study users views and concerns with such an approach:
Many questions need to be answered, by doing it will enable me to preemptively address similar concerns in the future and improve users adoption and acceptance of the project.
To do this I will be gathering your views via a questionnaire and email, additionally I will be keeping a blog of my projects progress to increase user interest and hopefully adoption; so check back regularly and see how it goes.
Would you be happy to donate idle processing power to help humanity?
Please take a few minutes to complete my user adoption questionnaire:
The more operations we can perform, the more tasks we can execute, the more tasks we execute the more functional and productive a process becomes. Lets say the average workstation has the processing power of approximately 2GHz which is an incredible speed capable of dealing with almost any functions you require processing, but unfortunately many mathematicians and scientists require more processing power then a simple standalone workstation can provide. This is due to the style of the algorithms they require processing, the majority of these algorithms use a brute force approach to find the answer; this requires a processor to calculate an infinite amount of results until it finally stumbles upon the correct answer.
To process such algorithms requires either a supercomputer or a distributed processing architecture. Unfortunately both these approaches are very expensive so researches must be creative when solving this problem; the solution they devised was to adopt Grid computing such as "World Community Grid". The Grid lets people share idle computing power securely across corporate, institutional, and geographic boundaries. It is distributed by a downloadable exe file which contains a client, this client would then utilise the idle processing power of the machine to process packets of data which it obtains from the server and then return the results upon completion. This is a very good approach to solving the problem but unfortunately the processing power gained from this approach is not nearly enough.
So we must find another relatively inexpensive approach of gaining large amounts of processing power for research purposes. This is the problem I intend to tackle as my project, using grid processing as my inspiration I will be researching how to develop a web based distribute processing client to take advantage of the 394,991,000 computers browsing the internet at any one time.
Typically a computer surfing the internet uses 10 - 30% of its potential processes power. Assuming the average processing power of these machines is 2GHz; that’s 1.4GHz on 394,991,000 computers which have the potential to be processing data. Which suggests the internet is a distributed network with the potential idle processing power of 552peta-Hz.
I believe using emerging Web 2.0 technologies such as Ajax to deliver a JavaScript client which runs when viewing a webpage could take advantage of the idle processing power currently residing on the internet.

The goal of this project is to create a proof of concept prototype. The prototype will be able to resolve MD5 pass phrases by a process of brute force using several computers over a distributed network using a web browser as the client. The reason I have selected the task of resolving MD5 pass phrases is due to the fact MD5 pass phrases can only be resolved by a process of trial and error brute forcing; this creates a similar problem to the one facing researches but at the same time us the simplicity required to implement the prototype.
If you have any comments, suggestions or constructive criticism for this project please feel free to contact me:
![]()
Find out how the project is progressing by reading my project blog
Please take a few minutes to complete my user adotion questionnaire