Berkeley Open Infrastructure for Network Computing

from Wikipedia, the free encyclopedia
BOINC

The current BOINC logo
The BOINC client for Windows
The BOINC client for macOS
Basic data

developer University of Berkeley
Publishing year April 10, 2002
Current  version 7.6.22
( January 1, 2016 )
operating system Windows , macOS , Linux , Android
programming language C ++
category Distributed computing
License GPL / LGPL ( Free Software )
German speaking Yes
boinc.berkeley.edu

The Berkeley Open Infrastructure for Network Computing (short BOINC ) is a software - platform for distributed computing .

The BOINC platform is being developed at the University of Berkeley and makes it possible to make the unused computing power of many thousands of computers available via the Internet or intranet. This takes place in the form of projects that are mostly non-profit and are supervised by universities or other institutions. The currently most computationally intensive projects include calculations to create an accurate 3D model of the Milky Way , the search for extraterrestrial life , calculation of gravitational waves , predictions of climate development and the simulation of protein folds for research into new drugs.

Details

During the development of BOINC, experiences from the volunteer computing project SETI @ home were used. A feature of the platform is the separation of the project management from the scientific content.

Users of this platform install a client program and can use it to distribute their free computing time to one or more projects. This is an important improvement over clients tied to only one project because some distributed computing projects do not have enough work to consume the resources of a large subscriber base. SETI @ home classic circumvented this problem by issuing some work packages up to twelve times for calculation, although only three results would be required to ensure accurate, scientifically usable results. With a BOINC client participating in several projects, the available computing power can be used more effectively.

Since November 18, 2003, BOINC has been under the GNU General Public License . The aim of releasing the program code is to provide even broader support for various platforms through the active assistance of the free software community and to increase security.

As of version 6.4.5, Nvidia supports CUDA technology . This makes it possible to use the computing power of graphics cards with CUDA support. From version 6.10.x onwards, the ATI stream technology is supported, which, like CUDA, allows calculation on graphics cards from ATI Technologies .

Currently (as of May 2020), with around 150,000 participants and around 800,000 active computers, the platform has an average computing power of 32 PetaFLOPS , which fluctuates depending on the day. By supporting the calculation of work packages with a compatible graphics card, the computing power has increased significantly in the past.

The BOINC manager (in expert mode) with the graphic windows of Rosetta @ home and ClimatePrediction.net

Components

Participant side

Core client
The core client is a command line program running in the background on the subscriber computer. He controls and monitors the scientific applications according to the participant's specifications, buffers work packages and communicates with the project's schedulers and data servers. In addition to Windows, the core client can theoretically also be ported to any Unix-like operating system, but is quite useless on its own if no scientific applications are available for the respective platform.
BOINC manager
The BOINC manager is a graphical user interface for configuring and monitoring the core client. It is based on the wxWidgets toolkit and can therefore run on all platforms that are supported by wxWidgets.
Boinc command line interface
the boinc_cmd program allows the core client to be controlled via the command line, for example if no graphical user interface is available (as is the case with servers ).
Project applications
Each project provides applications that are downloaded from the core client and used to calculate the work packages. These are monitored at runtime by the core client using shared memory . The functions for this monitoring are provided in the programming interface (BOINC-API) supplied by BOINC.

With older program versions, the core client is integrated both in the graphic BOINC manager and in the command line interface. With current versions, the separate core client communicates with the control programs via shared memory.

Server side

The backend provided by the respective project is based on a web server, PHP as a scripting language and a MySQL database. In large projects, the backend services can be distributed over several servers. Some projects use Perl or ASP instead of PHP for the backend, these are in-house developments of the projects that emulate the communication protocol specified by Berkeley.

Scheduler
The scheduler is a CGI program on the project's web server. He assigns their work packages to the participant clients and receives a short message about success / failure when the work is done. He keeps records of all activities in the database.
Data server
A simple HTTP server from which the clients download their work packages assigned by the scheduler and upload the result files.
Validator
The validator (a different program for each project) checks the result files returned by the clients for correctness. This usually happens because a work package is processed redundantly by several participants. The validator then compares the results. Ideally, they are identical.
Assimilator
A project specific program. Takes validated result files and prepares them for further scientific analysis. For this purpose, the results can be archived in a further database, for example.
File deleter
After the results have been "assimilated", the input and output files of the clients are unnecessary ballast for the data server, the number of which can also impair its performance. Files that are no longer required are deleted from the server with the file deleter.
Transitioner
The transitioner monitors the progress of the work packages along an imaginary pipeline . For example, he triggers the validator when he finds that there are enough redundant results for a work package so that validation can begin.

Functions

The behavior of the BOINC framework can be adapted to the needs of different projects. Features that are only used by some projects include:

Homogeneous redundancy
Some scientific applications are sensitive to numerical differences that can arise on different participant computers. The reasons for this can be found in the operating systems, the processors or the compilers used . Small differences in the rounding or floating point implementation can lead to completely different results. In the case of Predictor @ home, for example, it was found that Intel and AMD processors often calculated different protein folds. None of the processors had calculated “incorrectly”, since protein structures can only be approximated statistically anyway, but the differences were significant enough to upset the validator. LHC @ Home has been able to solve the problem for itself with a new platform-independent math library. On the BOINC side, it is possible to assign a work package to only identical platforms. A work package for “Windows / AMD” is then only processed by computers with this equipment.
Locality scheduling
In some projects, the input files of the work packages are very large. This puts a strain on the network connection of the project. However, some projects have the advantage that the same input files are required for many work packages. Network traffic can then be reduced by means of Locality Scheduling . In this case, a client is given preferential work packages for which it states that it already has the required input files. This technology is currently mainly used by Einstein @ home .
Trickles
(English for droplets ) are small XML files with which the project application can inform the scheduler about the progress of very long running calculations. ClimatePrediction.net , for example, uses work packages that can take weeks or even months to complete. But users don't want to wait that long for credit points. Using these tricks, the core client informs the scheduler about the work progress so that credit points can be awarded while the package is still in progress.
Data archiving
Projects can use the hard drive of the participant computer to archive old input or output data up to a limit that can be determined by the participant. However, the project cannot access the data without the cooperation of the participant. This option was used at times by ClimatePrediction.net, it involved data volumes in the range of a few 100 MB. In the meantime there are project concepts that deal exclusively with distributed archiving with BOINC, but no such project is publicly available so far.

safety

Client security

The BOINC client can be configured in such a way that a so-called protected mode is used. The BOINC instance runs in a sandbox mode. A user account with the lowest rights is used for this purpose.

Credits

So-called credits are awarded for work packages that have been successfully calculated and reported back within the validity period. These virtual points enable the calculation times invested to be compared between the participants and the teams. The amount of credits can be specified by the project on the one hand (fixed credits) or on the other hand based on the calculation time and the speed of the calculating computer.

Projects

Only the BOINC software has to be installed on the computer. After registering for one or more of the projects, BOINC independently downloads the required project software and begins the actual computing process. A wide range of projects is now available and new ones are constantly being developed.

Web links

Commons : Berkeley Open Infrastructure for Network Computing  - Album with pictures, videos and audio files

Individual evidence

  1. Release 7.6.22 . January 1, 2016 (accessed July 21, 2020).
  2. Active user overview on boincstats.com
  3. Active host overview on boincstats.com
  4. Overview of BOINC services on boincstats.com
  5. Security of BOINC on the project page
  6. Explanation of credits on the BOINC project page