*** Welcome to piglix ***

BOINC client-server technology


BOINC client–server technology refers to the model under which BOINC works. The BOINC framework consists of two layers which operate under the client–server architecture. Once the BOINC software is installed in a machine, the server starts sending tasks to the client. The operations are performed client-side and the results are uploaded to the server-side.

A major part of the BOINC system is the backend server. The server can run on one or many machines to allow BOINC to scale easily to projects of any size. BOINC servers run on Linux-based computers and use Apache, PHP, and MySQL for their web and database systems.

Scientific computations run on participants' computers. After uploading from the user's client to a science investigator's database, the backend server validates and analyzes the results. The validation process involves running all tasks on multiple contributor PCs and comparing the results.

BOINC servers also provide these features:

The server consists of two CGI programs and (normally) five daemons, written in C++. Computations to be performed by clients are called workunits. A result describes an instance of a workunit, even if it hasn't been completed. A project does not explicitly create results; the server creates them automatically from workunits.

The scheduler CGI program handles requests from clients, receiving completed results and sending new work to compute. The scheduler doesn't get available results directly from the database. Instead, a feeder daemon loads tasks from the database and keeps them in a shared-memory block, which the scheduler reads. The feeder periodically fills empty "slots" in the shared-memory block after the scheduler has sent those results to a client.


...
Wikipedia

...