GPU is a framework for distributed computing based on a network that builds itself randomly. In this network, each node is represented by a computer running the GPU application. Computers connect to each other and establish connections in what should get a supercomputer over Internet. Nodes on the network can be seen in 3D thanks to the Network Mapper, a so called frontend application that "speaks" with GPU.
Technically, GPU is a Grid-Computing infrastructure for Monte Carlo Applications and Randomized Algorithms. The thesis explaining basic concepts is here. A similar work by Dr. Yaohang Li and Prof. Michael Mascagni is also available on the web, and has additional theory and code to enhance Trustworthiness.
You can download and test GPU here. Give us feedback, or else we cannot improve!
We know for sure that the system scales at least up to 40 computers because we tested it on a university computer room. There is hope, with some eventual changes, that the system will allow each user to see 2000 other computers, as in Gnutella. More computers can build a cluster, but each machine will see only about 2000 computers because Gnutella packets have a count-down counter decreased each time a computer is reached. Once count-down gets zero, the packet is destroyed and no more computers can be seen.
Right now, we are able to generate videos of virtual landscapes with an external program called Terragen. Generating such a video takes about two weeks on a single computer. With the current GPU cluster size we reduce this time to one-two days. Additionally, there are a lot of plugins and frontends that are intended as example.
Here you can find some more information on current project status, current network status, or read the latest project news...
We are a group of people from all around the world that would like to see the idea happen. We are mostly computer science students or people with a strong interest in computers and distributed computing. GPU is developed as semester and master thesis at ETH Zrich under supervision of Wes by dangermaus with the help of many contributors, using all Open Source software available around the world. The main component that connects to Gnutella is written by Kamil Pogorzelski. The website is built and maintained by SeeSchloss. The Distributed Search Engine and the Terragen Plugin are built by nanobit (Rene Tegel). All other developers are listed on the GPU itself or on the frontend. Their name appears in the news as well. Contact us if there are copyright concerns.
There are two: Seti@home can scale at least up to 3'000'000 computers and GPU only to 2000 computers visible from each user.
On ChessBrain, another centralized project, volunteers compute one chess match only. With GPU, where everyone can get and has to provide CPU-time, everyone could play chess against the virtual supercomputer, if parallelism would already work in the chess plugin.
We present some centralized frameworks here.
The Globus Toolkit gives clean standards for building a grid. Using known technologies (Tomcat web servers, SOAP, RSA, XML, WSDL) and extensions of known technologies (GridFTP), it tries to define an inhomogeneous infrastructure for computing grids. In some configurations, computations are performed only after authenticating users.
In Globus, computations are offered as a "grid service" to clients, like a webserver offering pages to browsers. Globus does not define a scheduler, a scheduler should be implemented as a "grid service", too. The idea is very elegant for the centralized model, but there might be some problems in a P2P environment.
Version 2.0 was difficult to install and get running. We know some people who spent a semester term project to get it running. Version 3.0 is much easier to install and is in sinergy with IBM Eclipse.Another interesting Open Source Grid project is MyGrid.
GPU has quite a different philosophy: its main focus is on a P2P scheduler for randomized algorithms. Additionally, we would like a very homogeneous grid and easy to install, with a click on a setup.exe file. Then, we do not care at all about authenticating users, wrong results should disappear in random noise because of the nature of Monte Carlo simulations. A simple majority rule could discern wrong results, unless more than half of the users are cheating. In a sense, GPU is a bottom up project that does many things in reverse :-)
In principle, the only difference should be an additional computational feature. However, GPU is very experimental; file-sharing with GPU is still not recommended. We recommend EMule or Gnucleus, both Open Source and hosted at sourceforge.
Although this is not a question, it is fine. We understand your security concerns. The philosophy of the project is similar to what we remark in everyday life: if we do something for others without asking for a reward, chances that they will help us in time of trouble are much higher.
It's easy: go to the chat window (click on the balloon bar at top) and set your Nickname below the "Send Message" button. Your nickname is the computer name, too. You can set your country in the same window as well.
As you probably noticed, computers are represented as spheres and connections between them as lines. Take a closer look at the spheres. If they are solid, this means the corresponding computer answered our status request. Sometimes, computers do not answer for several reasons like network congestion, or a version lower than 0.827. In these cases, we know that these computers exist through the other nodes that answered our status request. These nodes are plotted as wire spheres (from far away, wire spheres seem gray). Now the meaning of colors is related to the number of computations a computer is currently performing (green = 0, blue = 1, violet = 2, red = 3). Sometimes, computers answer with a wrong IP (they have a dynamic IP). This confuses the Network Mapper: several gray wire spheres appear. We call these spheres ghosts, because they do not represent a computer.
GPU provides a system to sign plugins, frontends and application. However, you need to install PGP to verify them. GPU works fine with the firewall ZoneAlarm, but not with Norton Firewall. Other file sharing programs have similar trouble with Norton. So far, there were no security flaws. Of course, we cannot provide 100% guarantee. We do our best to stay virus and worm free, else our users will run away :-#
This is a personal choice: you might want to read our documentation or simply run the client, or do both.
We keep an entire page on this topic. You can download GPU and test it a little on your machine and help people on the chat rooms, although there are not many, right now.
GPU is Open Source. Unfortunately, the underlying TGnutella component is commercial, but we can share the source code with other people that work on the project without paying additional fees. Plugins and frontends can be developed entirely using Open Source.
No, it is not possible to share, to download or to search for offensive or adult material. Additionally, GPU makes clear how easy it is to track people on the network, generally speaking.
You are welcome. We will make it available through the autoupdate feature of GPU and include it in future releases. If you need support, we will give you all our resources to help you (provided the extension is not for weapon research, of course :-)
You do not have to use it. Autoupdate is always done with the user's approval: you can read what is new and then decide. If you see lot of client with newer versions on the network, an update might be worth the pain :-/
We recommend
Delphi is a Rapid Aid Development tool used in industry, where robustness, simplicity and speed (both in development and use) are a vital requirement for companies. A broad range of Open Source components is available and interfaces to common libraries like OpenGL are provided. Well programmed components with good debugging capabilites allow developers to get complex and robust applications running quickly (take a look at the amazing Artificial planet to get an idea). The ability of Java to run on multiple architectures is sacrificed in exchange with a tool with comparable object oriented features (components are implemented as JavaBeans there), but able to generate optimized object code like C++.
You can get Delphi 6 Open Edition for Open Source development here.
For the Intel architecture, the computing engine is in place. Depending on volunteers, we might get TGnutella under Kylix as well by porting the TCustomSocket objects. Windows uses event-driven sockets, Linux does not. But we now of libraries that mimic event-driven behavior in Kylix, however their signature is not compatible with the normal TCustomSocket signature. We might simply wait for Borland to port them in the next version of Kylix. GPU on Linux is not for tomorrow, it might take one or two years, unfortunately.
GPU is kindly hosted by Sourceforge, a platform for Open Source with more than 70000 projects. No wonder, if sometimes something goes wrong or slow. You can go to Seeschloss mirror, if Sourceforge is experiencing some problems.
Quien sabe. Chi lo sa. Qui sait. Who knows? If it will happen, then only gradually. To dream is not forbidden, eh. You can look at it as a proof of concept.
Please contact us in our forums, thank you!