View Single Post
  #1 (permalink)  
Old July 28th, 2002
dangermaus dangermaus is offline
cs student
 
Join Date: July 24th, 2002
Location: Poschiavo, Switzerland
Posts: 31
dangermaus is flying high
Default yet another Gnutella client??

Hi people!

We are a team of three Delphi Developers. We are developing a gnutella client with a transparent distributed computing framework (where everybody can send out computational jobs). The actual prototype allows you to download files, chat with others and share CPU-time.

Perhaps you want to download it and try it out, the site of the Open Source project is:

http://sourceforge.net/projects/gpu

(but the important file upload and host catchers are still not implemented)

Thank you for any comments, bug reports, ideas, criticism and feature requests...

The GPU development team

Here the project description:
-------------------------------------------------------------------------------
GPU is yet another Gnutella client. In addition to the standard functionality for sharing files, GPU is able to share CPU-time among users. GPU will provide a robust framework for distributed computing, but unlike Kaazaa, GPU won't hurt the basic principle of Gnutella: "every node is able to use services from other nodes and has to offer services to other nodes". This means that the computational tasks will be fully transparent to the users, and all users will have the privilege of starting a computation.
-------------------------------------------------------------------------------

and the prototype description
-------------------------------------------------------------------------------
GPU is a prototype for an application which shares CPU-time of normal computers connected to the Internet.
To do this, the application connects to the Gnutella network and, as any other Gnutella client does, is able to share files with others. In addition the application, from now on simply called the node, is able to send, receive and perform some computational jobs.
Jobs travel through the Gnutella network disguised as search string for files, until they find a node willing to execute them or until their short life terminates, limited by a counter decreased every time the job is retransmitted again.
Once the good-willing node finishes the job, it returns the result to sender. The sender has to collect results the same way he does for files found on the network.
Jobs are described with the polnish notation, which can be interpreted as commands for a stack. "1 + 1" becomes "1,1,+" and although at first look it seems more complicated, it frees the node from some difficult issues, like operator precedence and bracket management.
The application implements the commands for the computation in an elegant way, making easy to extend the set of basic computing functions the node knows.

At the moment the following plugins exist and work:


- a simple plugin that computes Pi using the method of throwing randomly a point and checking if it is in the circle with radius one. This is one of the easiest montecarlo computations, easy to understand for people willing to implement their first plugin

- a plugin with simple operations on vectors, like dot and cross product.

- a complex plugin for computing the discrete logarithm over huge integers, the inverse function of the most used one-way function in cryptography (although cryptographers won't fear this plugin, even if all computers on Internet will run the plugin! It takes an hour for solving the discrete log problem on one machine with a 42 bit integer, cryptographers use 2048 bit numbers!).

GPU was tested in different network topologies (trees and graphs), but the number of workstations involved never exceeded 10.
GPU seems stable. (at the moment we runned it for about 8 hours without having any problems)


Other possible applications are the search for prime numbers and golomb rulers, montecarlo integrations, stochastic solving of PDEs, number factorisation, cryptographic applications and repetitive tasks over huge chunks of data, e.g. a Fast Fourier Transform over data recorded from telescopes, to find out special events in the Universe, like the project Seti@home does.
At the moment, a working prototype exists, written in Delphi for Windows.

We search for Delphi developers, testers, volunteers running GPU on their Windows webservers, a Kylix porter and a promoter!
Reply With Quote