GPU : A Gnutella Processing Unit

How to help

The project aims at building a giant supercomputer from normal computers connected to the Internet. However, it should not be viewed as a David against Goliath challenge: a bunch of people can not obviously compete against entire companies and research teams. Millions of dollars are invested in such projects!
GPU can be regarded as a toy to learn advanced programming techniques (like sockets, multithreading and dynamic link libraries) and as a proof of concept that might be the future model for distributed computing. The object oriented model should be improved: to learn a programming language is like learning a tongue: the more practice, the better.
Without a strong community acting behind the scenes, the project will not survive.

If you still want to help the project in some way, here are some tips and tricks: do not take them as an order, just help if you want and feel interested. Remember, GPU is just for fun :-)

Programmers and students interested in the application are encouraged to contact us. We will do our best to help you if we can!

To do list

A to do list is here. We also keep a list of new ideas. If you would like to help on one of these tasks, it would be cool to hear from you.

Run the client on your machine

Since version 0.817, you are encouraged to run GPU on your machine. Running the client will show to the community that the system could work... because there is interest and volunteers. If you run it on Windows XP or 2000 stability should never be a concern. Basic functionality is there, although there is still some work to do on plugins. If you use the autoupdate feature, you can easily stay up-to-date and follow the project almost in real time. We thank you for reporting bugs and ideas. Check the chat window from time to time! J

Programming

GPU is written in Delphi, a language similar to C++. People willing to install the whole GPU package should ask our mailing list for the TGnutella package, a commercial component that connects the client to the Gnutella network. The component is quite stable; in fact, Kamil did a very good job! However, the component can not be used in other applications because of its commercial nature.
Earlier GPUs were based on a freely available component: unfortunately, the component was not stable enough to support distributed applications. A change in the underlying architecture is still possible: however, this will require hours and hours of programming work.

Note that to implement plugins or frontends, the TGnutella package is not necessary.

Some plugins are provided as examples: to be successful GPU should provide more complex and interesting plugins. Plugins are dynamic link libraries. They can be written in C, provided the exported functions have the right signature.

Feel free to implement anything you like: we accept everything, from the little factorial function to the huge client modification!

Links, Documentation

If you like GPU, and would like to help us in spreading the word, then please do link us from your homepages.

  • You could show this image or on your homepage. You can right-click with the mouse and save the image on your server. Link this image to http://gpu.sourceforge.net. This might bring some additional traffic and maybe involve others in the project. Another side effect is that search engines will give a better rank to the GPU site and will get more visibility.
  • You could write any kind of documentation: tutorials, help files and so on. Documentation is very important to the project, to explain others what GPU already can do.

Discussions, Ideas, Downloads

GPU is hosted by Sourceforge, a huge platform for Open Source software that hosts about 50000 projects. Top ten lists are compiled each day using the following formula:


  log (3 × # of forum posts that week)
+ log (4 × # of tasks ftw)
+ log (3 × # bugs ftw)
+ log (10 × patches ftw)
+ log (5 × tracker items ftw)
+ log (#commits to CVS ftw)
+ log (5 × # file releases ftw)
+ log (3 × # downloads ftw)
= project activity


GPU at its best ;-)

As you can see discussion in forums, downloads, file releases and other activities are rated using a logarithmic scale: in order to get a high rank and a consequent visibility, GPU should raise discussions (criticism is welcome) and should release files often. Even bug reports and patches, usually believed a negative point, play a positive role! We are happy to answer your support requests and we do our best to consider all new ideas.

Concerns about security

There is a Delphi component out there that allows signing the application and plugins using Pretty Good Privacy. PGP is probably the best software available at the moment, in order to verify that GPU was not changed to execute malicious code. Part of the project’s code is made public for review (we can not make the source code of Tgnutella public, because TGnutella is commercial). This will not change the fact that in the end one has to trust the development team. In fact, a trojan horse in the client would for sure mean some years in jail for the involved people.


Partner project

GPU is partner of Hubble in a bottle, a scientific visualization tool for stars that runs on Beowulf clusters. It should advertise the GPU concept to supercomputer scientists. Unfortunately, the project is not very active at the moment. Fight or die, keep on fighting!

Seeschloss created the initial website. The logo was designed by Mark Grady. Graphics are by David A. Lucas.
GPU, a P2P-computing cluster software, © 2002-2015 by the GPU Development team