2 BoincIntro
Vitalii Koshura edited this page 2023-04-06 11:10:16 +02:00

BOINC's support for volunteer computing

BOINC provides a number of features that address the specific needs of volunteer computing:

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 needing 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.