Volunteer Computing

Volunteer Computing (VC) is a distributed computing paradigm based on computing and storage capabilities of computers donated by volunteer individuals via the Internet. The volunteer members donated their personal computers to be used as hardware resources, when the computers are in idle status. Through this arrangement, VC environments have been very successful in harnessing idle hardware resources in personal computers.

Another definition of Volunteer Computing is a type of Desktop Grid (DG) computing, which is one of the largest distributed systems in the world. DG aims to bring large numbers of donated computing systems together to form computing communities with vast resource pools. They are well suited to perform highly parallel computations that do not require any interaction between network participants.

VC is currently being used by many scientific research projects. A well-known example of this is a project called SETI@home, whose main purpose is to analyze radio-telescopic signals in an attempt to detect extra-terrestrial activities. In this project, SETI@home employed a volunteer computing platform called BOINC.

BOINC, which stands for Berkeley Infrastructure for Open Network Computing, relies on a publicly open system that allows private individuals (i.e., “volunteers”) to install a software program, which takes advantage of their computers’ processing power when it would otherwise be idle. In addition, BOINC can also be used in multiple projects at once; hence a single volunteer-computer can share its resources with different projects using this platform. [need reference to BOINC paper here]

Another example of Volunteer Computing platforms is the XtremWeb project. The main principle of this open source research project is that any participant can volunteer his computing resources, as in BOINC, but can also use other participants’ computing resources or storage. In this scenario, each participant has the ability to register new applications and data and to submit new computational jobs. [need reference to XtremWeb here]

Architecture of a VC middleware - BOINC

From a general point of view, The BOINC architecture is based on a strict master/worker model:

  • Client: allows platform users to interact with the platform by submitting stand-alone jobs and retrieving results.
  • Server: a coordination service which connects clients and workers. It receives jobs submissions from clients and distributes them to workers according to a scheduling policy.
  • Worker: the component running on the PC which is responsible for executing jobs.

The centralized server never initiates communication with worker nodes. All the communication are instantiated from the worker simplifying some communication issues due to NAT and Firewalls. Besides, the central servers does not have to keep track of the workers connections.

Critical scaling issues with VC may arise from the fact that both VC and DG use centralized data storage, thus creating a potential bottleneck in the system when tasks share large input files or when the central server has limited bandwidth. In this paper we survey the use of decentralized data sharing techniques that can be further introduced to VC and DG data distribution system. The functionalities of P2P data sharing techniques may range from BitTorrent-style networks where all participants share equally, to more constrained and customizable unstructured P2P networks where certain groups are in charge of data distribution and discovery.

decentralized_storage_systems/vc_background.txt · Last modified: 2012/04/25 01:42 by julia
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki