wiki:BoincIntro

Version 5 (modified by davea, 18 years ago) (diff)

--

Overview of BOINC

BOINC is a software platform for volunteer computing and desktop Grid computing. Its features include:

Project autonomy
Many projects use BOINC. Projects are independent; each one operates its own servers and databases. There is no central directory or approval process.
Volunteer flexibility
Volunteers can participate in multiple projects; they control which projects they participate in, and how their resources are divided among these projects. When a project is down or has no work, the resources of its volunteers are divided among other projects.
Flexible application framework
Existing applications in common languages (C, C++, Fortran) can run as BOINC applications with little or no modification. An application can consist of several files (e.g. multiple programs and a coordinating script). New versions of applications can be deployed without required any action by volunteers.
Security
BOINC protects against several types of attacks. For example, digital signatures based on public-key encryption protect against the distribution of viruses.
Server performance and scalability
The BOINC server software is extremely efficient, so that a single mid-range server can dispatch and handle millions of jobs per day. The server architecture is also highly scalable, making it easy to increase server capacity or availability by adding more machines.
Source code availability
BOINC is distributed under the Lesser General Public License. However, BOINC applications need not be open source.
Support for large data
BOINC supports applications that produce or consume large amounts of data, or that use large amounts of memory. Data distribution and collection can be spread across many servers, and participant hosts transfer large data unobtrusively. Users can specify limits on disk usage and network bandwidth. Work is dispatched only to hosts able to handle it.
Multiple participant platforms
The BOINC core client is available for most common platforms (Mac OS X, Windows, Linux and other Unix systems). The client can use multiple CPUs.
Open, extensible software architecture
BOINC provides documented interfaces to many of its key components, making it possible for third-party developers to create software and web sites that extend BOINC.
Volunteer community features
BOINC provides web-based tools,such as message boards, user profiles, and private messaging, that encourage volunteers to form online communities.

Which applications are suitable for BOINC?

BOINC is designed to support applications that have large computation requirements, storage requirements, or both. The main requirement of the application is that it be divisible into a large number (thousands or millions) of jobs that can be done independently.

If the project is going to use volunteered resources, there are additional requirements:

Public appeal
An application must be viewed as interesting and worthwhile by the public in order to gain large numbers of participants. A project must have the resources and commitment to maintain this interest, typically by creating a compelling web site and by generating interesting graphics in the application.
Low data/compute ratio
Input and output data are sent through commercial Internet connections, which may be expensive and/or slow. As a rule of thumb, if your application produces or consumes more than a gigabyte of data per day of CPU time, then it may be cheaper to use in-house cluster computing rather than volunteer computing.