Basic concepts

Project

A project is an entity that does distributed computing using BOINC. Projects are independent; each one has its own applications, database, web site, and servers, and is not affected by the status of other projects. Each project is identified by a master URL, the URL of its web site. Multiple projects can coexist on a single server computer.

At the implementation level, a project consists of

  • a directory tree, containing files related to the project, and
  • a MySQL database.

A BOINC project involves a number of interrelated entities, described below. Each type of entity has a corresponding database table.

Application

An application includes several programs (for different platforms) and a set of workunits and results. A project can include multiple applications.

Platform

A platform is a compilation target - typically a combination of a CPU architecture and an operating system. BOINC defines a set of standard platforms.

Application versions

An application program may go through a sequence of versions. A particular version, compiled for a particular platform, is called an application version. An application version consists of one or more files.

Workunit

A workunit is a computation to be performed, i.e. a "job". It may include any number of input files. It has various attributes, such as resource requirements and deadline.

A workunit is associated with an application, not with an application version. In other words, you don't specify what platform the job is to be run on.

Result

A result describes an instance of a computation, either unstarted, in progress, or completed. Each result is associated with a workunit. In some cases there may be several instances, or "replicas", of a given workunit.

Account

Each volunteer in a project has an account, identified by an email address and password. An account has an associated amount of credit, a numerical measure of the work done by that volunteer's computers.

Clients and attachment

Volunteers run a program called the BOINC client; this is the only software they manually download.

A given computer running the BOINC client can be attached to accounts on one or more project. Each attachment has a resource share. If a computer is attached to multiple projects, its resources are divided among them in proportion to their resource shares.

BOINC in a nutshell

The overall flow of BOINC:

  • When a BOINC client runs low on work, it issues a scheduler request to one of its attached projects. The request message specifies the client's platform.
  • The project's scheduler (a daemon running on its server) scans the project's database for jobs that can be handled by the client, and returns one or more.
  • The client downloads the files associated with the application versions and workunits, and executes the programs.
  • When the jobs are completed, the client uploads the resulting output files.

This cycle is repeated indefinitely.


If this page is incomplete or incorrect, please edit it or add it to the wiki to-do list. To do this, you must be logged in; click Login or Register above.