So what’s the difference?
Volunteer Computing is just one form of distributed computing technologies alongside grid computing, cloud computing and high-performance (HPC) computing.
So what are the key differences between each technology, and why choose one over another?
Researchers often have to weigh up the costs of using distributed resources. Costs can be divided into upfront development costs (e.g. buying the hardware and software) or day-to-day operating/running costs (e.g. paying for the electricity, staff costs and access).
HPC requires specialised software and hardware development and support to build and manage a supercomputer, but fortunately there is generally lots of support from providers. Supercomputers are at the frontline of current processing capacity and therefore the day-to-day running costs will be more expensive than for clouds, grids or volunteer computing. However, as they use the maximum computing power to solve complex problems, it often takes a short amount of time, and therefore are only needed for a limited period.
Grid computing can be a more economical way of achieving the processing capabilities of HPC. Upfront development can be a long process as you are working with different system and you cannot dictate what a particular institute runs on their machines. However, grid computing works on a “free-at-point-of-use” system so running an analysis once you have your application should have no cost for the individual researcher. An institute would need to fund someone to manage and maintain their systems on the grid so increases their running costs.
Development costs are usually low for cloud computing as researchers do not need to own the physical infrastructure. Unlike on-site hosting the price of deploying applications in the cloud can be lower due to less expensive hardware and more effective use of resources. However, users have to pay per use which can equate to potentially higher day-to-day running costs. This is utility computing, similar to paying for a public utility, such as electricity.
In general, the operation cost for volunteer computing is lower than for clouds as the computer processing power is provided for free by the public. However, the upfront development costs can be higher as the application has to be adapted for volunteer computing. With cloud computing, you already have the application in theory – you just have to tell the cloud what you want.
Trust and relationships
Trust between resource providers and users is essential, especially when they don't know each other. Sharing resources conflicts with security policies in many individual computer centres, and on individual computers, so getting security right is crucial. All distributed computing tools have mechanisms for managing security. Grids use certificates and cloud providers have adopted various solutions such as cryptography. New security solutions are constantly being developed for volunteer computing, including sophisticated data encryption techniques.
Resource ownership and access
Efficient access of computing resources is crucial. Clouds technologies were developed to enable flexible renting of IT infrastructure and to provide on-demand services, while grid services were developed to share resources across owners or between institutions. HPC is where one single organisation uses the computational power of one single supercomputer. Volunteer computing uses resources owned by the public.
Giving something back?
Grids, clouds and HPC are generally symmetrical: an organisation or institution can provide and access resources simultaneously. This is particularly relevant for grid computing as access is ‘paid’ for in-kind by donating access to your own resources. Volunteer computing, in contrast, is asymmetric: volunteers supply computing resources to projects, and not the other way round.
Access to resources
The terms push and pull are used frequently to describe data sent over the Internet. With HPC, grids and clouds a researcher pushes a job to the computer resources and accepts/queues them. However, in volunteer computing, the computers request (pull) work from a central server.
Level of customisation
With clouds you have the ability to define and install applications, operating systems and other necessary software. However, with grids and HPC, you have to work with clearly defined and standard software but you can request updates and other requirements. In volunteer computing, the resources are supplied by the general public, and therefore defined by their needs and not by the researchers.
To find out more about the key differences between grids and volunteer computing check out David Anderson’s article here in iSGTW, July 4, 2007