open source project hosted by :
Intro & News
Database Version Control
Hubble in a bottle!
Frequently Asked Questions
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.
In two words, we would like to build a cluster software (or an internet supercomputer) to perform some useful task, and maybe even do some practical research on P2P or contribute to science in some way. Our goals are similar to BOINC projects, although we are just enthousiasts and not scientists, so you might not get the same level of professionalism when you run GPU :-). Nor we have fundings or whatever. This thing is just for fun. And it stills needs lot of improvements.
Moreover, we feel a little bit like The Next Generation Distributed Computing project, because we run on a cluster which can be connected in any way: we do not use the classic centralized client/server architecture, but a P2P network.
If you like, you can download and test GPU here. Any suggestion, idea, or help is very appreciated. Thx :-).
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 (up to half a million), 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. If you have the divx codec installed on your computer, you can download and view our videos here. Additionally, there are a lot of plugins and frontends that are intended as example, and an experimental Distributed Search Engine. GPU runs in a stable manner both under Windows or Linux with wine emulator.
<HB9TVM> development facility ;-)
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 was developed as semester and master thesis at ETH Zürich under supervision of Wes by dangermouse with the help of the amazing GPU Team, using all Open Source software available around the world and in outer deep space. The Distributed Search Engine and the Terragen wrapper were both written by nanobit (Rene Tegel). The main component that connects to Gnutella and the foundation of the core client is written by Kamil Pogorzelski. To develop GPU in Delphi, you might want to use the DelphiPackagerTool made by DelphiFreak (Samuel Herzog). The website was built by SeeSchloss. All other developers are listed on the GPU itself or on the frontend. Their name appears in the news as well. If you need help, please contact us on the mailing list.
If you have an application which takes a file as input and computes another file as output go to the file distributor page. For more complex applications like the distributed search engine, knowledge of Delphi and of the framework is required.
Ehm no, definitely not. Unlike Open Mosix, GPU does not automatically redistribute your applications to other connected computers.
To run an application on GPU in a distributed fashion, one needs to wrap it with a plugin and a frontend developed on purpose. The File Distributor makes things more easy, if you have an application which takes a file as input and generates one or several files as output.
Running GPU means sharing your ressources with others to target and eventually reach common goals (e.g. running the search engine or computing movies). Although GPU is designed to be very light (CPU usage stays mostly at 0%), some plugins like Terragen can be very ressource hungry.
The other reason is a matter of freedom. There are countries who would like to control access to information, for example to hide from public opinion knowledge that might be inconvenient to the party in power, knowledge that might show the true intents and the people who really profit by governamental moves, how they treat prisoners and people with different belief.
On the other side there are companies, huge powerful companies, that deliver operating systems to almost any machine on the world. They do not like cheap concurrence from other operating systems, so they might manipulate their own search engine so that results to the operating system available for free does not show up.It is not a matter of crawling anything pornographic, illegal and decadent, we believe society has to enforce some sort of censorship on these contents.
OK, this is the vision, let's stop dreaming, for the moment you might still be better with this search engine. Don't be fool man. Be happy!
There are two: Seti@home can scale at least up to 3'000'000 computers and GPU to 300'000 like Gnutella, although 2000 computers only are visible for each user. However, current GPU versions (0.9xx) scale only up to 60 nodes, we need to put more work into the communication layer.
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.
<spartacus> gpu node with <guevara> oscilloscope. The depicted curve on the oscilloscope is <spartacus> fan's noise.
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 at the bottom of the GPU window and set your nickname (well, in GPU computer names matter more than real names). Your nickname is the computer name, too. You can set your country and team at the same place. If you do not like the team names, just found your own team by typing your team name into the team edit box.
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 :-#
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.
Note: in versions 0.9xx file sharing is disabled.
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 made 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 :-) If you are short of ideas, you can pick one here, if you like.
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 :-/
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++.
It is already possible to run GPU 0.9xx under Linux using the wine emulator. See our information on the download page. 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.
The GPU core (without TGnutella) is under the GPL license. The GPL will ensure that any change will be to benefit of the entire user community.
The delivered plugins and frontends are under the previously mentioned license, too. However, plugins as dynamic link libraries and frontends as executables are completely independent from GPU. If you write your own plugins and frontends, you might enforce any license on them because they are binary independent from the framework. Although it might be too early to develop commercial GPU apps, one day this might make sense.
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.
<gemini>'s modified front panel
Please contact us in our mailing list, thank you!
[Roadmap] [Screenshots] [Documentation] [GPU Terragen] [P2P Search Engine] [Titan Movie] [Seismograph] [File Distributor] [Eternity II] [Orbit Simulation] [Climate Simulation] [Project/Contact] [Download] [FAQ]
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