next up previous contents
Next: Architecture Overview Up: GPU, a framework for Previous: Contents   Contents

Download PDF version of this document Download GPU GPU project homepage


Introduction

Distributed Computing is a way to cluster computers, so that they perform a common computation. Clients are specially assigned low priority processes which use only computing power that would be wasted anyway, which can be well in excess of 90%. In fact, modern operating systems are most of the time idle and just wait for user input. (Wikipedia definition [4]). Although most frameworks are centralized, the framework discussed here is distributed on a Peer-To-Peer network [20] called Gnutella [5], instead.

Gnutella is a protocol sitting on top of the TCP/IP layer that allows computers to connect each other in a random fashion to form a network. The first Gnutella client was developed by Justin Frankel and Tom Pepper of Nullsoft, a division of AOL, in early 2000. After connections between computers are established, users can share their files and download them from each other. Similarly, the proposed framework (called GPU1 [2,3,20]) allows users to share CPU-cycles on the network.

The GPU application runs in background and is able to start several threads with low priority to handle incoming requests. Thus, the user volunteering his/her computer is not bothered too much.

These threads access functionality stored as plugins. Plugins are the backend side of the GPU framework: they extend its capability to handle new requests. Plugins are "signed" with PGP [7], a freeware framework for asymmetric cryptography, to ensure they were not modified to run malicious code.

Frontends permit users to submit jobs and to visualize their results in an easy way. Users can keep up-to-date frontends, backends and the GPU itself by accessing the "autoupdate" features of the application.

Chapters 2, 3, 6, 7 and 8 are intended for everyone interested in distributed computing. Chapter 4 focuses on two theoretical problems that relate to Gnutella and to the framework. Chapter 5 and 6 are for developers that would like to extend the framework with plugins or frontends.


next up previous contents
Next: Architecture Overview Up: GPU, a framework for Previous: Contents   Contents
Tiziano Mengotti 2004-03-27