• No results found

Related Work Combining Peer-to-peer and Distributed Computing

Now that peer-to-peer and client/server style distributed computing applications have been described, this section will move to describe work that has already been done as a combination of the two fields. That is, similar work which directly relates to the application later presented in this thesis.

3.3.1 Retrofitting BitTorrent into Distributed Computing Data

Distribution

There has been some considerable work done in replacing the file distribution elements of existing client/server distributed computing systems. Wei, Fedak and Cappello published work in 2005 that examined the use of BitTorrent to be the mechanism for distributing data in a computational desktop grid. They followed this work up with replacing the data distribution mechanism in BOINC with BitTorrent (Costa et al 2008)12.

3.3.2 Peer-to-peer Distributed Computing

There are few demonstrable general purpose distributed computing systems that use peer-to-peer as an underlying architecture. Three representative samples are

12 This work references a paper (Goldsmith 2007) published as a part of the research supporting this thesis.

described here, the Gnutella Processing Unit, JNGI based on the the JXTA framework and P-Grid.

3.3.2.1 GPU

The Gnutella Processing Unit (GPU) is a distributed computing platform that allows users to share processing cycles. It is unique in the fact that along with sharing its name, GPU also shares the paradigm of having nodes provide resources equally, similar to its protocol namesake, without the ability to choose which jobs on the network each node contributes to.

GPU is a SourceForge.net13 hosted project that is being managed and

developed by a group of enthusiasts on the World Wide Web. 3.3.2.2 JXTA / JNGI

JNGI is a framework, built on top of another framework called JXTA which allows users to submit jobs to a network of peers. JXTA, by Sun Microsystems, is a

framework created as an attempt to standardise P2P communication between a group of peers. JXTA identifies peers by a unique peer ID and groups of peers are able to form as they participate in various applications on the JXTA network.

JNGI consists of several different entities that are hierarchically arranged and responsible for a number of functions. There are the task dispatcher, repository, code repository, job repository, task repository and then the participating nodes

themselves. 3.3.2.3 P-Grid

P-Grid (Aberer 2001) is similar to Pastry (See 3.1.5.1.2) in that it provides a DHT underlying implementation that the overlay is built on top of. What sets it apart is that its focus has been on general application so that it is able to be tasked for more general purpose usage.

At time of writing P-Grid is in limited release to academics looking to investigate peer-to-peer and grid systems.

3.3.3 Botnets

A Botnet is a colloquialism for a massively distributed computing system that typically engages in malfeasance on a broad scale automatically utilising computer systems that are usually unaware that they are even a part of the network. Studies presented at a recent conference (HotBots07) have suggested that some of the most distributed, peer-to-peer computing systems in known usage, capable of multiple tasks and dynamic control, are potentially Botnets.

Whilst hardly a peer-reviewed system in its own right, it would be remiss not to mention potentially the largest deployed massively parallel peer-to-peer

computing system in existence. Research into quantifying (Grizzard et al 2007) and reverse-engineering (Chiang & Lloyd 2007) some of these systems is now an emerging field.

13 SourceForge.net is a web based project management and source code management tool. It is a serves as a development tool for distributed collaboration and also as a central location for finding new and existing projects.

3.4 Benchmarking and Evaluation

Several benchmarking suites exist specifically for the field of grid or distributed computing. The NAS Grid Benchmarks provide a detailed specification for a group of problems that can be solved by a grid in order to gain some benchmarks and insights. These grew out of the earlier NAS Parallel benchmarks (NPB), which represent a suite of problems that were typically encountered by NASA when investigating computational aerodynamics. Earlier work, largely based on

benchmarking discrete computer systems such as LINPACK (explained below), have also been retrofitted and applied to distributed computing systems. Specialist grid benchmarking suites have also emerged such as Grid Bench that aim to take measurements across the spectrum of a grid's operation.

Whilst these benchmarks exist, few examples of comparative results with systems that are actually in use today are available to the researcher. This lessens the understanding of existing approaches and makes it difficult to assess the contribution of new systems as they emerge.

3.4.1 Whetstone and Dhrystone

Whetstone was one of the first general purpose, open benchmarks available (Curnow & Wichman 1976). It is a synthetic benchmark developed to test the floating point performance of an arbitrary machine whilst avoiding many known compiler optimisations. It produces a measure known as Whetstone Instructions per Second. Its name comes from the town in which the benchmark was developed. Many historical and modern machine's performance figures are available online (Longbottom 2008).

A play on the name of the Whetstone benchmark, Dhrystone is a synthetic benchmark developed to test the integer performance of a computing system in much the same way the whetstone measures floating point performance (Weicker 1984). It to was derived from a statistical analysis of computer operations and primarily tests the arithmetic and logical performance of a CPU.

3.4.2 Netperf

Netperf is a network performance measurement benchmark tool which focusses on the measurement of Ethernet performance by sending messages of various blocksizes from one host to another. This allows for measurements of latency, round trip time, saturation points and so on (Netperf 2009).

3.4.3 LINPACK and LAPACK

LINPACK is a library of routines for the solving of linear equations and least- squares problems (Dongarra et al 2003). It was developed during the late 1970s and early 1980s for use on supercomputers. LAPACK is an updated version of

LINPACK redesigned to take advantage of vector based, shared memory

supercomputers. The LINPACK benchmark, derived from the usage of LINPACK itself, can measure a computer systems power by solving a system of linear

equations. This provides a useful measure of floating point performance since solving dense linear equations is a common task for supercomputers for a variety of engineering problems.

3.4.5 NAS Grid Benchmarks

The NAS Grid Benchmarks (NAS stands for Numerical Aerodynamic Simulation) are the logical succession from the earlier NAS Parallel Benchmarks which were developed at NASA as a set of common calculations that they often do. The original benchmarks were published as “pencil and paper” algorithms where the calculations were explained and input data and corresponding expected output were given (Bailey et al 1991). Example implementations came later with NAS 2. These were MPI based implementations that could be executed on any machine with an MPI

implementation. NAS Parallel Benchmark 3 (NPB 3) was a further evolution with an implementation in OpenMP (a shared memory parallel programming library), high performance Fortran and Java. The latest release is GridNPB3 or the NAS Grid Benchmarks. These comprise of four benchmarks that are suitable to be run on a computing grid. There is an implementation available in both Fortran and Java using the Globus toolkit as a grid platform. A protocol for the usage of the NAS Grid Benchmarks is still being developed, at time of writing, so no comparative information between grid performance is available.

3.4.6 Peer-to-peer Benchmark Work

As alluded to in 2.3.3, peer-to-peer specific benchmarks are still very much in their early stages. Rhea et al (2003) present two benchmarks, find_owner and locate, as two common activities that DHT based peer-to-peer system rely on. Jinyang Li's PhD thesis (2005) presents a performance versus cost analysis of several DHT designs. Her performance versus cost metric (PVC), under simulation when graphed, produces a convex hull as the cost (bandwidth) varies against the performance (mean lookup latency). These convex hulls represent a best achievable performance versus cost combination for a DHT under given parameters.

Related documents