Berkeley Open Infrastructure for Network Computing

BOINC comes as an official part of Debian and with it of Ubuntu, Mint and many others. Just install the boinc package. Then start the boincmgr application to join the project of your liking.

The remainder of this page helps the maintainers of these packages to better organise themselves. It may serve the curiosity of the one or other casual visitor and possibly attracts more helping hands. Ignore it at first.

BOINC, under your control, downloads and runs external applications. Debian supports many more platforms than any scientific group. And with Debian, you have the confidence to see a direct correspondence between the source Debian distributes and the application one runs. For SETI, we have hence prepared a package of their scientific application, i.e. install boinc-app-seti and the local application is used to search for signals from outer space.

Debian and Ubuntu folks work together on those packages, which we are very happy about.

This page supports the maintenance of a Debian package for BOINC. BOINC provides an infrastructure for distributed computing that asks for volunteers world-wide to offer their compute power for a good cause. There is no central organization but every contributor decides by h(im|er)self what project to support. Everything of this infrastructure is Open Source, for the contributors and the scientists with computational demands alike. Hence, everybody can do something beneficial to the world at large, just by running an unnoticed application in the background.

Benefits of Debian for BOINC

One is that it would be difficult to install. Well, to install packages in Debian is not difficult and we give explicit instructions for BOINC below.

The other is that one does not know what is executed on one's own machine since a foreign binary is downloaded. This is helped by the redistribution of selected scientific applications as additional Debian packages - everyone can inspect also their source code and build the packages in an automated way.

The motivation to create packages for this worthwhile cause requires no further explanation, maybe except for the following hint: Debian is special for its support of many different architectures, which is only sustainable because of an automated compilation of novel packages. Thus, the provision of BOINC on Debian significantly contributes to the acceptance of the project in all these non-mainstream architectures.

Another peculiarity of Debian is the option to create dedicated chroot environments, which may be essential for security-sensitive administrators. Debian's debootstrap tool creates such easily, also in subdirectories of other Linux distributions, and schroot is a good tool for managing chroots. Together with the dynamic package management, this renders Debian a prime candidate for the creation of virtual hosts with arbitrary Linux distributions or - maybe more interestingly - on Windows machines running Xen, coLinux, VirtualBox or VMware. Also, the frequently distributed LiveCDs of Debian may help bringing functional BOINC installations to the masses.

Statistics

Work performed with the help of the Debian packages counts in the same way as if the upstream client was used. The scientific application for SETI, also available as a Debian package, may even be slightly faster than the original since our version does not waste cycles on feeding the graphics. This paragraph is about the adoption of the Debian package by the community.

for an overview on the installation rates of boinc-associated packages in Debian. In terms of user adoption we are competing nicely with a couple of other prominent packages and about every 75th installation of Debian features the BOINC client. The latest numbers are retrievable also in the shell:

Adoption of Debian's BOINC packages over time. Values for Ubuntu are about 15-20 times higher.

Technical overview

From the user's perspective, BOINC has three parts:

The external web server, run by the scientists, that manages the data flow. After the user's registration to a particular project this server is of interest only for power users who are interested to communicate with other users or the general progress of the individual project.

The BOINC core client that is commonly controlled by the BOINC Manager (boincmgr) and the only program that is actually started by the user.

The project-specific application (e.g. setiathome) that is started by the BOINC core client.

The speed of the processor is measured by the BOINC core client. One gets the more credits, the faster the BOINC core client says the individual machine is. Hence, it makes perfect sense to have a very much optimized binary of the BOINC core client, if one is interested in the stats. However, the project-specific application, which does the real work, does not profit from an optimization of the merely communicating BOINC client. It is the application's code where the real interest is in. Hence, the ultimate goal is to have locally optimized Debian packages for the scientific applications, too. These however are mostly distributed as binaries only, though there are exceptions, like SETI@Home, Milkyway@Home, Eistein@Home and others. We are providing also a package for SETI and Milkyway, see overview on platform-project compatibilities on /Projects.

Installation

Installation of binary packages

The BOINC packages are part of the Debian main archive since DebianEtch (see: boinc-client, boinc-dev, boinc-manager). To install BOINC on your computer update your package index files and install the boinc-client package:

sudo apt-get update
sudo apt-get install boinc-client

The boinc-client starts at a reboot, or explicitly with

sudo /etc/init.d/boinc-client start

To manage scientific applications run on boinc by GUI, install the boinc-manager package in addition:

sudo apt-get install boinc-manager

Finally, attach a new project to your BOINC core client. For GUI installation, run boincmgr; for CLI installation, run boinccmd.

NVidia CUDA

For support of GPU offloading on NVidia cards, feel invited to install the package boinc-nvidia-cuda. It ensures to have the required extra dependencies for CUDA programs installed, i.e. nvidia-glx and libcuda1 packages. More (too many?) details on NVidia are collected on the page NvidiaGraphicsDrivers of this wiki.

It should all be performed by the postinst scripts of the package. Anyway, if there are problems, verify the boinc user to be a member of the video group. If a card is detected but the apps don't work, also try installing the 32bit variants of support libraries like libcuda1-ia32 and lib32cudart4 packages, if these are available to you.

AMD Stream / OpenCL

This Wiki has a dedicated page on ATI/AMD Stream/OpenCL installation instructions. We prepared a package boinc-amd-opencl but are currently not shipping it since the AMD packages had issues. This, as a meta package, drags in the dependencies but otherwise has no extra functionality on its own. On amd64, it also installs the 32bit libraries, but other than for NVidia, it uses the multiarch principle.